如何使用LINQ选择MAX ID?

时间:2014-03-17 18:11:54

标签: c# linq linq-to-sql

从下面的sql数据中,我想采用一个与最大ID不同的EmpId。

ID  EmpId  DeptId
1   1002   XY
5   1100   ABC
6   1109   EF
7   1100   MN
9   1100   DE
10  1250   CE
11  1250   DJ
12  1100   DE

结果如下所示:

ID  EmpId  DeptId
1   1002   XY
6   1109   EF
11  1250   DJ
12  1100   DE

这个LINQ应该如何构建?

2 个答案:

答案 0 :(得分:5)

var result = list.GroupBy(x=>x.EmpId).Select(g=>g.OrderByDescending(y=>y.Id).First());

答案 1 :(得分:0)

from e in context.Employees
group e by e.EmpId into g
select new {EmpId = g.Key, 
            ID = g.OrderByDescending(gg=>gg.ID).FirstOrDefault().ID,
            DeptId = g.OrderByDescending(gg=>gg.ID).FirstOrDefault().DeptId 
           }