ホームページ > バックエンド開発 > C++ > C#リストから複製を効率的に削除するにはどうすればよいですか?

C#リストから複製を効率的に削除するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-29 02:12:10
オリジナル
1009 人が閲覧しました

How Can I Efficiently Remove Duplicates from a C# List?

リストを削除

繰り返されるアイテムのいくつかの方法 c#では、コレクション管理は一般的なタスクです。リストから繰り返し要素を削除する必要がある場合があります。これは、データのクリーニングやユニークな価値の検索など、さまざまなプログラミングシナリオで一般的な需要です。幸いなことに、これを達成するにはいくつかの方法があります。

linq(.net 3以降に適しています)

最も簡単で簡単な - 読み取りソリューションの1つは、LINQ(言語統合)を使用することです。この機能は.NET 3で導入されており、データをクエリして伝達するステートメント方法を提供します。以下は、linq:の例です

リストの繰り返し要素をフィルタリングし、一意の要素のみを含む新しいリスト

を返します。
<code class="language-csharp">List<T> withDupes = LoadSomeData();
List<T> noDupes = withDupes.Distinct().ToList();</code>
ログイン後にコピー
メソッドは、生成された

Distinct()に変換します。 withDupes noDupes既にLINQ式を使用している場合、この方法は非常に便利です。 ToList() IEnumerable Hashset List

を使用します

別の選択肢は、ハッシュセットを使用することです。これは、高速検索と効率的な反復検出のために設計されたコレクションタイプです。以下は、この操作を実行できる方法です。

最初は空です。各プロジェクトをで横断し、コレクションに追加しようとしました。ハッシュセットは繰り返されることは許可されていないため、唯一のプロジェクトのみを正常に追加できます。最後に、生成されたコレクションはを使用してリストに戻ります。 この方法では、挿入および検索操作にO(n)パフォーマンスを提供します。

辞書を使用

<code class="language-csharp">HashSet<T> hashSet = new HashSet<T>();
foreach (var item in withDupes)
{
    hashSet.Add(item);
}
List<T> noDupes = new List<T>(hashSet);</code>
ログイン後にコピー

3番目の方法には、一意の要素を追跡するための辞書の使用が含まれます。 HashSet hashSet 一意の要素のための一時的なストレージ。各アイテムが辞書に存在するかどうかを確認するためにリストを横断しました。そうでない場合は、辞書とwithDupesリストに追加します。 noDupes

この方法はO(n)の複雑さも提供しますが、一意に追跡するための追加のデータ構造を作成する必要があります。

適切な方法を選択

を選択します 重複したアイテムを削除する最良の方法は、特定の要件に依存します。コードライブラリでLINQを使用した場合、LINQは簡単なソリューションを提供します。 Hashsetは効率的な検索と挿入性能を提供し、大規模なコレクションに適しています。ただし、要素の元の順序は保持されません。最後に、辞書方法により、各一意の要素に関連する追加情報を追跡できますが、辞書データ構造の作成によりいくつかの費用が生成されます。

以上がC#リストから複製を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート