在C#中,GroupBy的作用是根據指定的鍵將集合中的元素分組。它返回一個根據鍵分組的序列,每個組包含具有相同鍵的元素。
GroupBy方法可以應用于任何實現了IEnumerable
在返回的分組序列中,每個元素都是一個IGrouping<TKey, TElement>對象,其中TKey是分組的鍵類型,TElement是分組的元素類型。IGrouping<TKey, TElement>提供了對分組鍵和分組元素的訪問。
通過使用GroupBy方法,可以輕松地對集合中的元素進行分組操作,以便進行進一步的處理、分析或聚合。例如,可以使用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
可以看到,元素被成功地按照奇偶進行了分組。每個分組包含一個鍵和相應的元素。