LINQ を活用してデータを効率的にグループ化し、カウントします
C# の LINQ (統合言語クエリ) は、データを操作およびクエリするための強力な方法を提供します。データ セットをグループ化してカウントする必要がある場合、LINQ は簡潔で効率的なソリューションを提供します。
ユーザーとそれに関連する指標と日付を含むデータセットがあるとします。
<code>UserInfo(姓名, 指标, 日期, 其他指标) 数据: joe 1 2011/01/01 5 jane 0 2011/01/02 9 john 2 2011/01/03 0 jim 3 2011/01/04 1 jean 1 2011/01/05 3 jill 2 2011/01/06 5 jeb 0 2011/01/07 3 jenn 0 2011/01/08 7</code>
私たちの目標は、インジケーターの順序 (0、1、2、3...) ごとにグループ化されたテーブルを取得し、各インジケーターの合計出現数を表示することです。
LINQ を使用したグループ化とカウント
LINQ を使用してこれを実現するには、「GroupBy」メソッドと「Select」メソッドを使用できます。
<code>foreach(var line in data.GroupBy(info => info.metric) .Select(group => new { Metric = group.Key, Count = group.Count() }) .OrderBy(x => x.Metric)) { Console.WriteLine("{0} {1}", line.Metric, line.Count); }</code>
手順:
出力:
<code>0 3 1 2 2 2 3 1</code>
別の方法
提供されている LINQ ソリューションは効率的ですが、さらに簡素化することもできます。
<code>var result = data.GroupBy(info => info.metric) .Select(group => new { Metric = group.Key, Count = group.Count() }) .OrderBy(x => x.Metric);</code>
ここでの唯一の違いは、「foreach」ループを使用して結果を反復する代わりに、結果を「result」という変数に代入することです。
重要なポイント
以上がLINQ はどのようにしてデータをグループ化し、出現回数を効率的にカウントできるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。