LINQ を利用して固有のアイテムを識別する
LINQ (統合言語クエリ) は、.NET アプリケーション内でデータをクエリおよび操作するための合理化されたアプローチを提供します。 頻繁に行われるタスクには、あるコレクション内で別のコレクションには存在しない要素を特定することが含まれます。
この例では、Person
オブジェクトの 2 つのリスト、peopleList1
と peopleList2
を示します。目標は、peopleList2
に存在しない個人を peopleList1
から抽出することです。
LINQ ベースのソリューション
次の LINQ クエリはこれを実現します。
<code class="language-csharp">var result = peopleList2.Where(p => !peopleList1.Any(p2 => p2.ID == p.ID));</code>
このクエリは、peopleList2
をフィルタリングし、Person
に ID
が存在する peopleList1
を除外します。
代替の LINQ アプローチ
代替の LINQ 式は次のとおりです。
<code class="language-csharp">var result = peopleList2.Where(p => peopleList1.All(p2 => p2.ID != p.ID));</code>
このアプローチでは、Person
内に同じ peopleList2
を共有する Person
がないことを検証することで、peopleList1
内の固有の ID
オブジェクトを識別します。
パフォーマンス分析
両方のメソッドの時間計算量が O(nm) であることを考慮することが重要です。n は peopleList1
と m のサイズを表します*はpeopleList2
のサイズを表します。 大規模なデータセットの場合、この複雑さがパフォーマンスのボトルネックにつながる可能性があります。 このようなシナリオでは、最適化のために代替アルゴリズムやハッシュ テーブルなどのデータ構造を検討することが必要になる場合があります。
以上がLINQ を使用して、あるリスト内で別のリストにはない一意の項目を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。