5

我有一个自定义类型列表,如果找到重复项,我想在其中删除重复项和原始类型。只能是一个可能的重复项。

我可以覆盖 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);

为了使它起作用,您仍然需要覆盖GetHashCodeand 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 回答