C#的LINQ里的GROUP BY 如何使用
时间: 2024-03-12 08:43:17 浏览: 16
在 C# 的 LINQ 中,GROUP BY 用于按照指定的键对序列进行分组,下面是一个基本的示例:
假设我们有一个包含学生姓名和年龄的列表,我们想按照年龄分组并统计每个年龄分组中的学生数量。代码如下:
```
List<Student> students = new List<Student>() {
new Student{ Name = "Tom", Age = 18 },
new Student{ Name = "Jerry", Age = 18 },
new Student{ Name = "Lucy", Age = 19 },
new Student{ Name = "Lily", Age = 20 },
new Student{ Name = "David", Age = 20 }
};
var groupByAge = students.GroupBy(s => s.Age)
.Select(g => new {
Age = g.Key,
Count = g.Count()
});
foreach (var item in groupByAge)
{
Console.WriteLine($"Age: {item.Age}, Count: {item.Count}");
}
```
输出结果:
```
Age: 18, Count: 2
Age: 19, Count: 1
Age: 20, Count: 2
```
在上面的代码中,我们使用 GroupBy 方法把学生列表按照年龄进行分组,然后使用 Select 方法对每个分组进行统计,并将结果存储在一个匿名类型对象中。最后,我们遍历结果并输出每个年龄分组的学生数量。