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.