Why IEqualityComparer has GetHashCode() method?

IEqualityComparer в пространстве имен System.Collections.Generic имеет следующие методы:

bool Equals(T x, T y);
int GetHashCode(T obj);

Поскольку этот интерфейс используется для проверки равенство объектов, первый метод Equals имеет смысл. Но зачем нам также реализовывать GetHashCode ? Почему он вообще существует в интерфейсе? Когда он нужен и зачем?

Я использую его с методом Enumerable.Distinct () в пространстве имен System.Linq , и я удивлен, увидев, что даже GetHashCode () вызывается вместе с Equals () . Почему? Как работает Distinct ?

8
задан Nawaz 24 February 2011 в 12:47
поделиться