use*_*506 9 c# linq max entity-framework-6
我有以下列表:
EMP_ID | UPDATED_DATE | MARK ------ | ------------ | ---- 111 | 01/01/2015 | 99 111 | 01/01/2013 | 85 111 | 01/01/2017 | 80 222 | 01/01/2011 | 70 222 | 01/01/2015 | 55 222 | 01/01/2002 | 60
我必须为每个ID选择一行,最新的UPDATED_DATE,在我们的等:
EMP_ID | UPDATED_DATE | MARK ------ | ------------ | ---- 111 | 01/01/2017 | 80 222 | 01/01/2015 | 55
这是订单的代码:
empMarksList.OrderBy(x=>x.EMP_ID).ThenBy(y=>y.UPDATED_DATE)
Run Code Online (Sandbox Code Playgroud)
Ami*_*ich 11
用途GroupBy
:
var items = empMarksList
.GroupBy(e => e.EMP_ID)
.Select(grp => grp.OrderByDescending(v => v.UPDATED_DATE).First());
Run Code Online (Sandbox Code Playgroud)
或者如果你想要一个词典:
var dict = empMarksList
.GroupBy(e => e.EMP_ID)
.ToDictionary(grp => grp.Key,
grp => grp.OrderByDescending(v => v.UPDATED_DATE).First());
Run Code Online (Sandbox Code Playgroud)