在LINQ中,可以使用OrderBy
或OrderByDescending
方法对分组后的结果进行排序。
假设有一个学生列表,每个学生都有一个班级属性Class
,现在要按班级分组,并在每个班级内按照学生的姓名进行排序,可以按照以下方式编写LINQ查询:
var students = new List<Student>();
// 分组并在组内排序
var groupedStudents = students
.GroupBy(s => s.Class)
.Select(g => new
{
Class = g.Key,
Students = g.OrderBy(s => s.Name) // 在组内按姓名排序
});
// 遍历结果
foreach(var group in groupedStudents)
{
Console.WriteLine("班级:" + group.Class);
foreach(var student in group.Students)
{
Console.WriteLine("姓名:" + student.Name);
}
}
在这个示例中,GroupBy
方法将学生列表按班级分组,然后通过OrderBy
方法对每个班级内的学生按姓名进行排序。最后,我们使用Select
方法来创建一个新的结果对象,包含班级和已排序的学生列表。在遍历结果时,我们可以看到每个班级内的学生已按姓名进行了排序。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: LINQ是什么怎么使用