来自 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) 引用还表明TSource
must 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 { }
那么我是否误解了报价试图传达的内容,或者报价完全错误?
谢谢你