linq分组后排序

yang1216 2015-09-14 09:10:12
我需要用linq对一个表分组之后排序取每一组的第一个。
也就是有个表
Id,ClientId,Time
先按ClientId分组,然后按Time排序,最后取每个组的第一个。
求教,这个怎么用lambda写呢?
...全文
339 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajianchina 2015-09-14
  • 打赏
  • 举报
回复
包正确,顺序、降序自己改OrderBy

var query = 源数据.GroupBy(p => p.ClientId).Select(p => p.OrderBy(x => x.Time).First());
exception92 2015-09-14
  • 打赏
  • 举报
回复
引用 6 楼 yang1216 的回复:
[quote=引用 5 楼 duanzi_peng 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 先按ClientId分组,然后按Time排序 -》 类似: OrderBy(c=>c.ClientId).ThenBy(t=>t.Time) 最后遍历
OrderBy-》GroupBy[/quote] 不遍历,直接select的办法有吗?[/quote] 类似:

from  p in tb
group p by p.ClientId  into g
select new {
 key = g.Key,
 first = (from i in g
         orderby i.Time   descending
		 select i).First()
 
}
descending 降序。
effun 2015-09-14
  • 打赏
  • 举报
回复
xxx.GroupBy(o => o.ClientId).Select(o => new { ClientId = o.Key, Time = o.Max(i => i.Time) }).OrderByDescending(o => o.Time)
yang1216 2015-09-14
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 先按ClientId分组,然后按Time排序 -》 类似: OrderBy(c=>c.ClientId).ThenBy(t=>t.Time) 最后遍历
OrderBy-》GroupBy[/quote] 不遍历,直接select的办法有吗?
exception92 2015-09-14
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
先按ClientId分组,然后按Time排序 -》 类似: OrderBy(c=>c.ClientId).ThenBy(t=>t.Time) 最后遍历
OrderBy-》GroupBy
yang1216 2015-09-14
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
from l in list
group l by l.ClientId into g
select g.OrderBy(x=>x.Time).First()
翻译成lambda怎么写呢?
yang1216 2015-09-14
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
先按ClientId分组,然后按Time排序 -》 类似: OrderBy(c=>c.ClientId).ThenBy(t=>t.Time) 最后遍历
这个取不到每组的第一个啊
exception92 2015-09-14
  • 打赏
  • 举报
回复
先按ClientId分组,然后按Time排序 -》 类似: OrderBy(c=>c.ClientId).ThenBy(t=>t.Time) 最后遍历
  • 打赏
  • 举报
回复
from l in list
group l by l.ClientId into g
select g.OrderBy(x=>x.Time).First()
nomasp 2015-09-14
  • 打赏
  • 举报
回复
http://blog.csdn.net/nomasp/article/details/45461517

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧