5

重複が見つかった場合に重複とオリジナルを削除したいカスタムタイプのリストがあります。可能な重複は 1 つだけです。

Equals と GetHashCode をオーバーライドしてから Distinct を使用できますが、これは重複を削除するだけです。オリジナルと複製の両方を削除する必要があります... エレガントなもののアイデアがあれば、ハンマーを使用する必要はありません。

4

2 に答える 2

6

GroupByに続いて、Where (g => g.Count() == 1)重複のあるすべてのレコードを除外するために使用できます。

var res = orig.GroupBy(x => x).Where(g => g.Count() == 1).Select(g => g.Key);

これが機能するためには、 と をオーバーライドする必要がありGetHashCodeますEquals

于 2013-05-16T20:41:10.757 に答える
3
var itemsExistingExactlyOnce = list.GroupBy(x => x)
    .Where(group => group.Count() == 1)
    .Select(group => group.Key);
于 2013-05-16T20:41:18.740 に答える