あるリストに存在する別のリストから要素を効率的に削除する (C#)
多くのプログラミング タスクでは、2 番目のリストにも表示される要素をリストから削除する必要があります。 この記事では、これを実現するための C# での 2 つの効果的な方法を説明します。
LINQ の Except
メソッドの活用
LINQ (言語統合クエリ) は、Except
メソッドを使用した簡潔なソリューションを提供します。このメソッドは 2 つのリスト間の集合の差を計算し、最初のリストに固有の要素のみを含む新しいリストを返します。 重要なのは、このアプローチにより、元のリストの変更が回避されることです。
Except
の使用例を示します。
<code class="language-csharp">List<car> list1 = GetTheList(); List<car> list2 = GetSomeOtherList(); List<car> result = list2.Except(list1).ToList();</code>
このコード スニペットは、result
に存在しない list2
の要素で構成される新しいリストである list1
を生成します。 ToList()
は Except
ではなく IEnumerable
を返すため、List
変換が必要です。
代替: 新しいリストを直接作成する
より効率的なアプローチには、必要な要素のみを含む新しいリストを直接作成することが含まれます。
<code class="language-csharp">List<car> result = GetSomeOtherList().Except(GetTheList()).ToList();</code>
これにより、前の例と同じ結果が得られますが、一時変数は必要ありません。
重要な考慮事項:
上記のどちらの方法でも、フィルターされた要素を含む新しいリストが生成されます。 元のリスト (list1
と list2
) はそのまま残ります。
以上がC# で別のリストに存在する項目をあるリストから削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。