来自 MSDN
SequenceEqual(IEnumerable, IEnumerable) 方法并行枚举两个源序列,并使用 TSource、Default 的默认相等比较器比较对应的元素。默认相等比较器 Default 用于比较实现 IEqualityComparer 泛型接口的类型的值。
a)据我了解上面的引用,它暗示EqualityComparer<T>.Default用于比较实现 的类型的元素,IEqualityComparer<T>而实际上 Default用于返回IEqualityComparer<T>调用IEquatable<T>.Equals(假设T可分配给IEquatable<T>)或它调用的特定实现Object.Equals
b) 引用还表明TSourcemust implement IEqualityComparer<T>,这是不正确的:
static void Main(string[] args)
{
Test test1 = new Test();
Test test2 = new Test();
Test[] list1 = { test1, test2 };
Test[] list2 = { test1, test2 };
bool eq = list1.SequenceEqual(list2); //works
}
public class Test { }
那么我是否误解了报价试图传达的内容,或者报价完全错误?
谢谢你