相关疑难解决方法(0)

Linq按顺序分组,每组按顺序排序?

我有一个看起来像这样的对象:

public class Student
{
    public string Name { get; set; } 
    public int Grade { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想创建以下查询:按学生姓名分组成绩,按成绩对每个学生组进行排序,并按每组中的最高成绩对订单组进行排序.

所以它看起来像这样:

A 100
A 80
B 80
B 50
B 40
C 70
C 30
Run Code Online (Sandbox Code Playgroud)

我创建了以下查询:

StudentsGrades.GroupBy(student => student.Name)
    .OrderBy(studentGradesGroup => studentGradesGroup.Max(student => student.Grade));
Run Code Online (Sandbox Code Playgroud)

但是返回IEnumerable IGrouping,我无法对列表进行排序,除非我在另一个foreach查询中执行此操作并使用将结果添加到其他列表AddRange.

有更漂亮的方法吗?

c# linq group-by sql-order-by

61
推荐指数
4
解决办法
12万
查看次数

标签 统计

c# ×1

group-by ×1

linq ×1

sql-order-by ×1