C#でのgroupbyの目的は何ですか。
C#において、GroupByの役割は指定したキーに基づいてコレクション内の要素をグループ化することです。これは、キーに基づいてグループ化されたシーケンスを返し、それぞれのグループには同じキーを持つ要素が含まれています。
GroupByメソッドは、IEnumerableインターフェースを実装したコレクション、配列、リスト、検索結果などに適用できます。ラムダ式またはデリゲートを使用してグループ化するキーを指定できます。
各グループ化されたシーケンスの戻り値には、それぞれの要素がIGrouping<TKey, TElement>オブジェクトとなっており、TKeyはグループ化のキータイプ、TElementはグループの要素タイプです。IGrouping<TKey, TElement>は、グループ化のキーと要素へのアクセスを提供します。
GroupByメソッドを使用することで、コレクション内の要素を簡単にグループ化し、さらなる処理、分析、集計などを行うことができます。例えば、学生をクラスごとにグループ化したり、注文を顧客ごとにグループ化したり、製品をカテゴリごとにグループ化したりすることができます。
以下は、整数リストを奇数と偶数でグループ化するGroupByメソッドの使い方を示す例です。
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var groups = numbers.GroupBy(x => x % 2 == 0 ? "偶数" : "奇数");
foreach (var group in groups)
{
Console.WriteLine($"Key: {group.Key}");
foreach (var number in group)
{
Console.WriteLine(number);
}
}
結果は次の通りです:
Key: 奇数
1
3
5
7
9
Key: 偶数
2
4
6
8
10
元素は奇数と偶数に成功してグループ化されました。各グループにはキーと対応する要素が含まれています。