c# linq GroupBy 的用法
时间: 2023-11-26 15:04:00 浏览: 73
C#中的LINQ(Language Integrated Query)提供了一种方便的方式来查询和操作数据。其中的GroupBy方法可以将集合中的元素按指定的键分组,返回一个按键分组的集合。
下面是GroupBy方法的使用示例:
```csharp
List<Student> students = new List<Student>() {
new Student() { Name = "Tom", Age = 18, Grade = "A" },
new Student() { Name = "Jerry", Age = 18, Grade = "B" },
new Student() { Name = "Bob", Age = 19, Grade = "A" },
new Student() { Name = "Alice", Age = 19, Grade = "B" }
};
var groups = students.GroupBy(s => s.Age); // 按年龄分组
foreach (var group in groups) {
Console.WriteLine($"Age: {group.Key}");
foreach (var student in group) {
Console.WriteLine($"Name: {student.Name}, Grade: {student.Grade}");
}
}
```
在上面的示例中,我们定义了一个Student类,然后创建了一个包含4个Student对象的List。接着调用GroupBy方法,按照学生的年龄进行分组。最后使用foreach循环遍历每个分组,并输出分组的键和每个元素的详细信息。
输出结果如下:
```
Age: 18
Name: Tom, Grade: A
Name: Jerry, Grade: B
Age: 19
Name: Bob, Grade: A
Name: Alice, Grade: B
```
除了按单个键进行分组,GroupBy方法还支持按多个键进行分组,并且可以使用Lambda表达式自定义键的获取方式。
阅读全文