名前空間のIEqualityComparerSystem.Collections.Generic
には、次のメソッドがあります。
bool Equals(T x, T y);
int GetHashCode(T obj);
このインターフェイスはオブジェクトの等価性をチェックするために使用されるため、最初の方法Equals
が理にかなっています。しかし、なぜ実装する必要があるのGetHashCode
でしょうか。そもそもなぜインターフェースに存在するのですか?いつ、なぜ必要なのですか?
名前空間のEnumerable.Distinct()メソッドで使用してSystem.Linq
いGetHashCode()
ますEquals()
。なんで?どのように機能しDistinct
ますか?