命名空间中的IEqualityComparerSystem.Collections.Generic
具有以下方法:
bool Equals(T x, T y);
int GetHashCode(T obj);
由于该接口用于检查对象的相等性,因此第一种方法Equals
是有意义的。但是为什么我们GetHashCode
还需要实施呢?为什么它首先存在于界面中?什么时候需要它,为什么?
我在 namespace 中将它与Enumerable.Distinct()System.Linq
方法一起使用,我很惊讶地看到 evenGetHashCode()
与Equals()
. 为什么?如何Distinct
工作?