我有一個自定義類型的列表,如果發現重複,我想刪除重複文件和原始文件。只能是一個可能的重複。從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