首页 > 解决方案 > 在LINQ中使用group by时如何使用order by

问题描述

我编写了一个 LINQ 查询,以按教职员工姓名的顺序显示每个教职员工监督的学生总数。

int count;
int key;
var myQuery = from s in Students
join f in Faculties
on s.FID equals f.FID
group f by f.FLast + ' ' + f.FFirst into grp
select new {key = grp.Key, count = grp.Count()};
myQuery.Dump();

这个查询吐出结果:

Brown Jonnel  1 
Zhulin Mark   1 
Marx Teresa   3 
Langley Colin 1 

哪个是对的。但是,有两件事我想做这个结果。首先,我想按员工姓名对其进行排序,其次,我想为这些列标题提供别名。如何在 LINQ 中执行此操作?

标签: sqllinq

解决方案


var myQuery = from s in Students
              join f in Faculties
              on s.FID equals f.FID
              group f by f.FLast + ' ' + f.FFirst into grp
              select new { StaffName = grp.Key //give column headers aliases
              , count = grp.Count() };            
myQuery.ToList().OrderBy(w=>w.StaffName)//order it by the staff name
.Dump();

希望它对你有帮助:-)


推荐阅读