سؤال

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.

نصائح أخرى

otherwise you can try MoreLINQ and its method DistincBy

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top