C#的LINQ里的GROUP BY 如何使用
时间: 2024-03-08 07:49:05 浏览: 97
在 C# 的 LINQ 中,可以使用 GROUP BY 关键字来对数据进行分组操作。其语法如下:
```
var result = from item in collection
group item by item.GroupKey into groupedItems
select new { GroupKey = groupedItems.Key, Items = groupedItems };
```
其中,collection 是要进行分组的数据源,item.GroupKey 是每个元素的分组依据,groupedItems 是分组后的结果,包含了 GroupKey 和对应的分组元素集合。
下面是一个示例代码,演示如何使用 GROUP BY 对一组数字进行分组,以便计算每组数字的平均值:
```
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var groups = from n in numbers
group n by n % 3 into g
select new { Remainder = g.Key, Avg = g.Average() };
foreach (var group in groups)
{
Console.WriteLine("Numbers with remainder {0} averaged {1:0.00}", group.Remainder, group.Avg);
}
```
输出结果如下:
```
Numbers with remainder 1 averaged 2.00
Numbers with remainder 2 averaged 3.50
Numbers with remainder 0 averaged 6.00
```
以上代码将数字按照它们除以 3 后的余数进行分组,然后计算每组数字的平均值,并输出结果。
阅读全文