制作linq查询的不同方法给出了不同的结果

时间:2018-05-22 09:18:29

标签: c# linq

此查询:

var s =
    from student in students
    group student by student.Year
    into studentGroup
    orderby studentGroup.Key
    select studentGroup;

按学生年份排序我的小组。结果是:

FirstYear
FirstYear
SecondYear
SecondYear
SecondYear
ThirdYear
ThirdYear
ThirdYear
FourthYear
FourthYear
FourthYear

我想使用不同的linq方法进行相同的查询:

var s = students
    .GroupBy(x => x.Year)
    .Select(group => group.OrderBy(record => record.Year));

但在这种情况下,年份没有正确排序。它们按组分类,但不是整体分类。多数民众赞成我得到的:

SecondYear
SecondYear
SecondYear
ThirdYear
ThirdYear
ThirdYear
FirstYear
FirstYear
FirstYear
FourthYear
FourthYear
FourthYear

我做错了什么?

1 个答案:

答案 0 :(得分:2)

OrderByGroupBy之间移动Select

var s = students
        .GroupBy(x => x.Year)
        .OrderBy(group => group.Key)
        .Select(group => group);