1

クエリ演算子 Distinct() を使用する場合、クエリ対象のシーケンスの型は、GetHashCode() と Equals() の適切なオーバーロードを提供するか、IEqualityComparer<T> の実装を渡す必要があります。

私の質問: Delegate インスタンス (例: Comparison<T>) を受け入れる Distinct() のオーバーロードがないのはなぜですか? - 存在する場合は、より軽量なラムダ式を渡すことができます (IEqualityComparer<T> の実装よりも軽量です)。- ここで何か不足していますか?

4

2 に答える 2

4

を使っているからGetHashCode()です。
ハッシュ コードを与えるデリゲートを作成することはできません。

2 人の代理人が必要になることもありますが、それは混乱を招きます。

DistinctBy()射影を取るメソッドがない理由を尋ねたほうがよいでしょう。

于 2011-11-17T19:33:22.983 に答える
1

それ以外の場合は、 MoreLINQとそのメソッド DistincByを試すことができます

于 2011-11-17T19:35:08.887 に答える