Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

otherwise you can try MoreLINQ and its method DistincBy

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top