我有一个自定义类型的列表,如果发现重复,我想删除重复文件和原始文件。只能是一个可能的重复。从C#列表中删除重复和原始文件
我可以忽略Equals和GetHashCode,然后使用Distinct但这只能删除重复。我需要删除原始和重复...任何想法的东西优雅,所以我不必使用锤子。
我有一个自定义类型的列表,如果发现重复,我想删除重复文件和原始文件。只能是一个可能的重复。从C#列表中删除重复和原始文件
我可以忽略Equals和GetHashCode,然后使用Distinct但这只能删除重复。我需要删除原始和重复...任何想法的东西优雅,所以我不必使用锤子。
您可以使用GroupBy
,其次是Where (g => g.Count() == 1)
筛选出有重复的所有记录:
var res = orig.GroupBy(x => x).Where(g => g.Count() == 1).Select(g => g.Key);
为了这个工作,你仍然需要重写GetHashCode
和Equals
。
就像一个魅力......! –
var itemsExistingExactlyOnce = list.GroupBy(x => x)
.Where(group => group.Count() == 1)
.Select(group => group.Key);
发布相关代码。 –
你能否提供一个代码示例,说明你正在使用的是什么,这将实际上帮助其他人了解你正在尝试做什么 – MethodMan