C#的LINQ里的GROUP BY 如何使用
时间: 2024-03-20 07:42:49 浏览: 60
C#在LINQ中使用GroupBy
在C#的LINQ里,可以使用`group by`关键字对数据进行分组。下面是一个示例代码:
```csharp
var students = new List<Student>
{
new Student { Name = "Alice", Grade = 85 },
new Student { Name = "Bob", Grade = 70 },
new Student { Name = "Charlie", Grade = 90 },
new Student { Name = "David", Grade = 85 },
new Student { Name = "Emily", Grade = 70 },
new Student { Name = "Frank", Grade = 90 }
};
var groups = from student in students
group student by student.Grade into g
select new { Grade = g.Key, Students = g };
foreach (var group in groups)
{
Console.WriteLine("Grade {0}:", group.Grade);
foreach (var student in group.Students)
{
Console.WriteLine("\t{0}", student.Name);
}
}
```
在这个示例中,我们定义了一个`Student`类,其中包含了学生的姓名和成绩。我们使用`group by`将学生按照他们的成绩进行分组,然后使用`select`创建一个新的匿名类型,其中包含了分组的关键字和该组中的所有学生。最后,我们使用`foreach`循环打印每个分组及其成员的信息。
输出结果为:
```
Grade 85:
Alice
David
Grade 70:
Bob
Emily
Grade 90:
Charlie
Frank
```
这个示例中,我们使用了LINQ的查询语法,也可以使用方法语法来实现相同的功能。
阅读全文