ホームページ > バックエンド開発 > C++ > LINQ を使用してオブジェクト リスト内の重複を効率的にカウントするにはどうすればよいですか?

LINQ を使用してオブジェクト リスト内の重複を効率的にカウントするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-29 21:34:15
オリジナル
861 人が閲覧しました

How Can I Efficiently Count Duplicates in Object Lists Using LINQ?

LINQ を使用したオブジェクト リストの重複のカウント

複雑なオブジェクトのリストを操作する場合、重複のカウントは一般的な要件となることがあります。 LINQ (統合言語クエリ) を使用すると、共通のプロパティに基づいてオブジェクトを効率的にグループ化し、各重複の数を取得できます。

これを実現する方法についてのステップバイステップのガイドは次のとおりです。

  1. プロパティごとにグループ化: GroupBy 演算子を使用して、目的のプロパティごとにオブジェクトをグループ化します。この例では、「ID」プロパティに基づいて重複をカウントしたいので、次のように記述できます:
var groupedIDs = items.GroupBy(item => item.ID);
ログイン後にコピー
  1. Count Duplicates: For each group作成された場合は、Count 演算子を使用して重複の数を決定します
var duplicateCounts = groupedIDs.Select(group => new { ID = group.Key, Count = group.Count() });
ログイン後にコピー
  1. 結果の順序: デフォルトでは、結果は任意の順序でグループ化されます。重複の最大数で並べ替えるには、OrderByDescending 演算子を使用します:
var sortedDuplicates = duplicateCounts.OrderByDescending(x => x.Count);
ログイン後にコピー
  1. 選択したデータの取得: カウントと元のオブジェクトの両方が必要な場合は、選択演算子で射影を使用して、カスタムのresult:
var result = sortedDuplicates.Select(x => new { Count = x.Count, Object = x.ID });
ログイン後にコピー
  1. データ ソースへのバインド: 重複したカウントを取得したら、表示またはさらなる処理のためにそれらをデータ ソースにバインドできます。あなたの場合、ListView を使用すると、これは次のようになります:
lvRelatedGames.DataSource = result;
lvRelatedGames.DataBind();
ログイン後にコピー

追加の考慮事項:

  • オブジェクトのプロパティが異なる場合重複グループごとに、カスタム比較子を使用して、特定の基準に基づいてオブジェクトが重複であるとみなされるようにする必要がある場合があります。
  • 提供されたコードは開始点となることを目的としており、特定の要件とデータ構造に基づいてコードを調整する必要がある場合があります。

以上がLINQ を使用してオブジェクト リスト内の重複を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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