ホームページ > バックエンド開発 > C++ > LINQ を使用して、あるリスト内で別のリストにはない一意の項目を効率的に見つけるにはどうすればよいですか?

LINQ を使用して、あるリスト内で別のリストにはない一意の項目を効率的に見つけるにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-19 18:42:09
オリジナル
691 人が閲覧しました

How Can I Efficiently Find Unique Items in One List That Aren't in Another Using LINQ?

LINQ を利用して固有のアイテムを識別する

LINQ (統合言語クエリ) は、.NET アプリケーション内でデータをクエリおよび操作するための合理化されたアプローチを提供します。 頻繁に行われるタスクには、あるコレクション内で別のコレクションには存在しない要素を特定することが含まれます。

この例では、Person オブジェクトの 2 つのリスト、peopleList1peopleList2 を示します。目標は、peopleList2 に存在しない個人を peopleList1 から抽出することです。

LINQ ベースのソリューション

次の LINQ クエリはこれを実現します。

<code class="language-csharp">var result = peopleList2.Where(p => !peopleList1.Any(p2 => p2.ID == p.ID));</code>
ログイン後にコピー

このクエリは、peopleList2 をフィルタリングし、PersonID が存在する 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) であることを考慮することが重要です。npeopleList1m のサイズを表します*はpeopleList2のサイズを表します。 大規模なデータセットの場合、この複雑さがパフォーマンスのボトルネックにつながる可能性があります。 このようなシナリオでは、最適化のために代替アルゴリズムやハッシュ テーブルなどのデータ構造を検討することが必要になる場合があります。

以上がLINQ を使用して、あるリスト内で別のリストにはない一意の項目を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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