在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
可以看到,元素被成功地按照奇偶进行了分组。每个分组包含一个键和相应的元素。