カスタム比較操作を使用してList<T>
から重複を削除するにはC#メソッドが必要です。 .NET 4.そこに1つまたはそれを自分で書く必要がありますか?あなたの比較演算がIEqualityComparer<T>
であるか、それに変換することができ、あなたはLINQと罰金だと仮定すると、リストから重複を削除するC#メソッド<T>
2
A
答えて
7
:
var newList = oldList.Distinct(customComparer).ToList();
明らかにそれは、むしろ1古いから要素を削除するよりも、新しいリストを作成しかし、ほとんどの場合、それは大丈夫です。うあなたは、常に完全にその後、新しいリストで古いリストの内容を置き換えることができない場合は...
6
をあなたがJon's answerで行くことができる、またはあなたが本当に既存リストから重複を削除したい場合は、このような何か作品は:??
public static void RemoveDuplicates<T>(this IList<T> list, IEqualityComparer<T> comparer = null)
{
comparer = comparer ?? EqualityComparer<T>.Default;
var uniques = new HashSet<T>(comparer);
for (int i = list.Count - 1; i >= 0; --i)
{
if (!uniques.Add(list[i]))
{
list.RemoveAt(i);
}
}
}
関連する問題
- 1. C#リストから重複とオリジナルを削除する
- 2. リスト(Of T)から重複を削除
- 3. リストのリストから重複を削除しますか?
- 4. リストから重複する要素を削除する
- 5. リストから重複する要素を削除する
- 6. 重複した要素を削除するリスト<Vector3> Mono/C# - Unity3D
- 7. リスト内の重複を削除する
- 8. リスト内の重複を削除する
- 9. リストからすべての重複を削除する方法
- 10. MVCのリストから重複するタイトルを削除します
- 11. リストから重複する項目を削除します
- 12. リスト内の重複するオブジェクトを削除する(C#)
- 13. リストから重複したマッチを削除する
- 14. Pythonの問題リストから重複を削除する
- 15. 追加の条件でリストから重複を削除する
- 16. スキーム内の交差リストから重複を削除する
- 17. リストから重複した文字列を削除する
- 18. リストから重複を削除するより速い方法
- 19. リストから重複を削除する方法
- 20. ソート済みリスト(OCaml)から重複を削除する
- 21. C++のArrayから重複する整数を削除する
- 22. リスト内の重複を削除する(C#)
- 23. C#のリストで重複を削除する方法
- 24. TStringListから重複を削除する
- 25. ステージングファイルから重複を削除する
- 26. ドロップダウンリストから重複を削除する
- 27. Pythonは重複をリストから削除しますか?
- 28. タイプベクトル<string>の重複をC++で削除するには?
- 29. ローカルコンテキストから重複したエンティティを削除/削除する
- 30. linqを使用してフィールドのリストから重複を削除
なぜ 'oldList = oldList.Distinct(customComparer).ToListを()しない;'新しいリストを作成しないようにMr.Skeetそれは悪いそれが動作しないでしょうか? – Bastardo
@ JohnnyCageWins - それは新しいリストの作成を妨げません。古いリストに保持している参照を新しいリストへの参照で上書きします。 –
@Jonas H何?真剣に?私は、古いリストを上書きするためにメモリフローが非常に間違っていると思います。私は 'oldList'を使用すると作成する必要はないと思いました。何か方法はありませんか?Mr.H 。 – Bastardo