【发布时间】:2011-06-28 04:12:09
【问题描述】:
我有一个看起来像这样的对象:
public class Student
{
public string Name { get; set; }
public int Grade { get; set; }
}
我想创建以下查询:按学生姓名对成绩进行分组,按成绩对每个学生组进行排序,并按每个组中的最高成绩对组进行排序。
所以它看起来像这样:
A 100
A 80
B 80
B 50
B 40
C 70
C 30
我创建了以下查询:
StudentsGrades.GroupBy(student => student.Name)
.OrderBy(studentGradesGroup => studentGradesGroup.Max(student => student.Grade));
但这会返回IEnumerableIGrouping,我无法对里面的列表进行排序,除非我在另一个foreach 查询中这样做并使用AddRange 将结果添加到不同的列表中。
有没有更漂亮的方法来做到这一点?
【问题讨论】:
标签: c# linq group-by sql-order-by