ホームページ > バックエンド開発 > C++ > LINQ の GroupBy メソッドと Count メソッドをデータ集計にどのように使用できますか?

LINQ の GroupBy メソッドと Count メソッドをデータ集計にどのように使用できますか?

DDD
リリース: 2025-01-22 00:51:11
オリジナル
370 人が閲覧しました

How can LINQ's GroupBy and Count methods be used for data aggregation?

データ集計に LINQ の GroupBy メソッドと Count メソッドを使用する

LINQ の GroupBy 演算子は、指定されたキーに基づいてデータを集計するための強力なツールです。 Count() メソッドと組み合わせると、グループ化された値の出現をカウントするために使用できます。

次のシナリオを想定します。UserInfo というデータセットがあり、これにはユーザーのメトリクスとその他の情報のレコードが含まれています。メトリックの発生数を取得するには、データをメトリックごとにグループ化し、各グループ内のレコード数をカウントする必要があります。

<code class="language-c#">// 示例数据集
List<userinfo> data = new List<userinfo>
{
    new UserInfo { Name = "joe", Metric = 1, Day = "01/01/2011" },
    new UserInfo { Name = "jane", Metric = 0, Day = "01/02/2011" },
    new UserInfo { Name = "john", Metric = 2, Day = "01/03/2011" },
    new UserInfo { Name = "jim", Metric = 3, Day = "01/04/2011" }
};</code>
ログイン後にコピー

LINQ の GroupBy と Count を使用して目的の結果を達成する方法は次のとおりです。

<code class="language-c#">var metricCounts = data.GroupBy(info => info.Metric)
                        .Select(group => new { Metric = group.Key, Count = group.Count() })
                        .OrderBy(x => x.Metric);

foreach (var line in metricCounts)
{
    Console.WriteLine($"{line.Metric} {line.Count}");
}</code>
ログイン後にコピー

このコードでは、GroupBy() 演算子が Metric プロパティごとにデータをグループ化し、IEnumerable オブジェクトのコレクションを作成します。次に、Select() 演算子は、各グループを Metric プロパティと Count プロパティを持つ匿名型に投影します。最後に、OrderBy() 演算子は結果をメトリック値の昇順に並べ替えます。

このコードの出力は次のようになります:

<code>0 1
1 1
2 1
3 1</code>
ログイン後にコピー

これは、LINQ を使用して、値をグループ化してカウントすることにより、集約されたデータを効率的に取得する方法を示します。 GroupBy と Count の使用法を理解することで、アプリケーション内のデータを効果的に操作し、要約することができます。

サンプルデータの Metric=0 の数がオリジナル記事と修正版で異なっているため、オリジナル記事の誤りである可能性がありますのでご注意ください。 変更されたバージョンは、コードの出力とより一貫性があります。

以上がLINQ の GroupBy メソッドと Count メソッドをデータ集計にどのように使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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