如何使用扩展方法将第二个查询形成为第一个查询。 顺便说一下,这必须得到所有组的最后一个元素。
1) var res = from element in LI
where element.C_ID != null
group element by element.C_ID
into groups
select groups.OrderBy(p => p.C_ID).Last();
(第二个查询形式不正确)
我的原因是没有订购的团体
2) LI.Where(element => element.C_ID != null)
.GroupBy(element => element.C_ID)
.Last().ToList()
答案 0 :(得分:3)
LI.Where(element => element.C_ID != null)
.GroupBy(element => element.C_ID) //a sequence of groups
.Select(group => group.OrderBy(p => p.C_ID).Last()) //select the last of each group
.ToList()
答案 1 :(得分:0)
关于spender回答的评论:
LI.Where(element => element.C_ID != null)
.GroupBy(element => element.C_ID) //a sequence of groups
.Select(grp => grp.OrderByDescending(p => p.C_ID).First()) //order in descending order and then get first of each group
.ToList()
答案 2 :(得分:-1)
您可以在OrderBy
方法之前制作groupby
,例如:
LI.Where(element => element.C_ID != null)
.OrderBy(element => element.C_ID)
.GroupBy(element => element.C_ID)
.Last().ToList()