在C#中,GroupBy的作用是根據(jù)指定的鍵將集合中的元素分組。它返回一個(gè)根據(jù)鍵分組的序列,每個(gè)組包含具有相同鍵的元素。
GroupBy方法可以應(yīng)用于任何實(shí)現(xiàn)了IEnumerable
在返回的分組序列中,每個(gè)元素都是一個(gè)IGrouping<TKey, TElement>對(duì)象,其中TKey是分組的鍵類型,TElement是分組的元素類型。IGrouping<TKey, TElement>提供了對(duì)分組鍵和分組元素的訪問。
通過使用GroupBy方法,可以輕松地對(duì)集合中的元素進(jìn)行分組操作,以便進(jìn)行進(jìn)一步的處理、分析或聚合。例如,可以使用GroupBy方法對(duì)學(xué)生按照班級(jí)進(jìn)行分組,對(duì)訂單按照客戶進(jìn)行分組,對(duì)產(chǎn)品按照類別進(jìn)行分組等。
以下是一個(gè)示例,演示如何使用GroupBy方法對(duì)整數(shù)列表按照奇偶進(jìn)行分組:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var groups = numbers.GroupBy(x => x % 2 == 0 ? "偶數(shù)" : "奇數(shù)");
foreach (var group in groups)
{
Console.WriteLine($"Key: {group.Key}");
foreach (var number in group)
{
Console.WriteLine(number);
}
}
輸出結(jié)果為:
Key: 奇數(shù)
1
3
5
7
9
Key: 偶數(shù)
2
4
6
8
10
可以看到,元素被成功地按照奇偶進(jìn)行了分組。每個(gè)分組包含一個(gè)鍵和相應(yīng)的元素。