LINQ データの集約とグループ化: 効率的な方法の詳細な説明
LINQ (統合言語クエリ) は、さまざまなシナリオでデータをクエリおよび操作するための強力かつ簡潔な方法を提供します。一般的なタスクの 1 つは、特定の基準に基づいてデータをグループ化し、各グループ内の出現数をカウントすることです。
データのグループ化とカウントに LINQ を使用する
UserInfo という名前のデータ セットがあり、name、metric、day、other_metric などのフィールドが含まれているとします。メトリック値で並べ替えてメトリックの数を取得するには、次の LINQ 構文を使用できます:
<code class="language-csharp">var groupMetrics = from info in data // 从数据源开始 group info by info.metric into grp // 按'metric'字段分组 select new { Key = grp.Key, Count = grp.Count() }; // 选择键和计数</code>
このクエリは次のことを行います:
このクエリを実行すると、メトリック値とそれに対応する数を含むリストが取得され、データセット内のメトリック分布の概要が得られます。
カスタマイズされたグループ化結果
上記のソリューションでは、匿名型を使用してグループ化された結果を構築します。ただし、グループ化されたデータを表すカスタム クラスを定義して、出力形式をより詳細に制御することもできます。
その他のソリューション
LINQ to SQL を使用する代替案は、元の質問で言及されています:
<code class="language-csharp">var pl = from r in info orderby r.metric group r by r.metric into grp select new { key = grp.Key, cnt = grp.Count()};</code>
どちらのソリューションもメトリックによるグループ化と発生回数のカウントという目標を達成していますが、LINQ to SQL 構文はデータベースのクエリ用に特別に設計されており、純粋な LINQ 構文は UserInfo オブジェクトの列挙されたコレクションに適用できます。どの方法を選択するかは、作業しているコンテキストとデータ ソースによって異なります。
以上がLINQ はどのようにしてデータを効率的にグループ化し、各グループ内の出現をカウントできるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。