我对LINQ很新
假设我有下表:
Incident ID DeviceID Time Info 1 1 5/2/2009 d 2 2 5/3/2009 c 3 2 5/4/2009 b 4 1 5/5/2009 a
在LINQ中,我如何编写查找最近和不同(在设备ID)事件集的查询?我想要的结果是这样的:
ID DeviceID Time Info 3 2 5/4/2009 b 4 1 5/5/2009 a
你必须创建一个IEqualityComparer来做到这一点吗?
解决方法
您可以通过以下方式获取每个设备的最新事件(这是我如何理解您的问题):
var query = incidents.GroupBy(incident => incident.DeviceID) .Select(g => g.OrderByDescending(incident => incident.Time).First()) .OrderBy(i => i.Time); // only add if you need results sorted