When using the query operator Distinct() the types in the queried sequence must either provide suitable overloads of GetHashCode() and Equals() or you have to pass an implementation of IEqualityComparer<T>.
My question: Why is there no overload of Distinct() accepting a Delegate instance (e.g. Comparison<T>)? – If it was existent a more lighweight lambda expression could be passed (more lightweight than an implementation of IEqualityComparer<T>). – Am I missing something here?
Because it uses
GetHashCode().You cannot make a delegate that gives hash codes.
It could take two delegates, but that would be confusing.
It would be better to ask why there isn’t a
DistinctBy()method that takes a projection.