Вы можете использовать метод расширения Distinct
, передав его в пользовательский компаратор равенства.
Причина, по которой вам нужен GetHashCode()
, заключается в том, что без него вам нужно O(n^2)
сравнений. С GetHashCode()
элементы могут быть разделены на сегменты, что приводит к O(n)
для хорошей реализации хэша.
Если тип элемента принадлежит вам, вы можете переопределить Equals
и GetHashCode
в самом типе вместо создания IEqualityComparer<T>