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

LINQ が C# リスト内の重複オブジェクトを効率的に数えて要約するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-03 02:25:38
オリジナル
933 人が閲覧しました

How Can LINQ Efficiently Count and Summarize Duplicate Objects in a C# List?

LINQ と C を使用した重複のカウント

データ操作の領域では、特定の基準に基づいてデータを集計することが必要になることがよくあります。このような状況の 1 つは、オブジェクトのリスト内の重複をカウントする必要がある場合に発生します。 LINQ (言語統合クエリ) は、このタスクに洗練されたソリューションを提供します。

問題: 重複オブジェクトの要約

初期クエリ:

var q = from x in inventory
                 group x by x into g
                 let count = g.Count()
                 orderby count descending
                 select new { Count = count, gameName = g.Key.gameName, gameID = g.Key.gameID };
ログイン後にコピー

このクエリはカウントと重複する各名前にはゲーム ID が省略されます。これに対処するには、アプローチを変更する必要があります。

解決策: カスタムのグループ化と選択

オブジェクト プロパティによるグループ化:

var q = from x in inventory
                 group x by x.gameName into g
                 let count = g.Count()
                 orderby count descending
                 select new { Count = count, gameName = g.Key, gameID = g.First().gameID };
ログイン後にコピー

ゲーム名に基づいてオブジェクトをグループ化するプロパティを使用すると、同じ名前のオブジェクトを効果的に集約できます。

最初のオブジェクトの選択ID:

gameID = g.First().gameID
ログイン後にコピー

同じ名前のオブジェクトは異なる ID を持つ可能性があるため、First() を使用してグループ内の最初のオブジェクトの ID を取得します。これにより、一意のゲーム名ごとに ID が確保されます。

完全な例:

完成したコード スニペット内に上記のロジックをカプセル化:

var inventory = new List<game>();

// ... additional code for populating the inventory list

var q = from x in inventory
                 group x by x.gameName into g
                 let count = g.Count()
                 orderby count descending
                 select new { Count = count, gameName = g.Key, gameID = g.First().gameID };

// ... additional code for displaying the results
ログイン後にコピー

次に、クエリ各一意のゲーム名のカウント、ゲーム名、ゲーム ID が重複数の多い順に正しく表示されます。

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

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