日期:2014-05-20  浏览次数:20678 次

LINQ 分组的问题
本帖最后由 WMMCY 于 2013-01-06 15:28:17 编辑
有一个IEnumerable<xx>里面包含有很多设备的的ID(以DeviceId区分),提取时间(createTime)等信息,现在要取出每台设备最近时间(按时间倒序)的第一条数据,这个应该如何实现呢。不知道各位听懂没有,感觉这个有点难以描述

------解决方案--------------------
var s=ary.GroupBy(t=>t.ID).Select(t=>t.OrderBy(tt=>(DateTime.Now-tt.createTime).Ticks)).FirstOrDefault()).ToArray();
------解决方案--------------------
IEnumerable<xx> list;

var query=list.GroupBy(x=>x.DevicedId).Select(g=>g.OrderByDescending(s=>s.createTime).First());

------解决方案--------------------
var result=dbDecices.GroupBy(t=>t.ID).OrderByDescending(s=>s.CreateTime).FirstOrDefault();