我在集合中有以下对象:
交易:
Type =“Widget”
日期=“3/1/2011”
Name =“Foo”
交易:
Type =“Widget”
日期=“3/4/2011”
名称=“酒吧”
交易:
Type =“Gadget”
日期=“2011年3月2日”
名字=“Baz”
交易:
Type =“Gizmo”
日期=“3/1/2011”
姓名=“谁”
交易:
Type =“Gizmo”
日期=“2011年3月2日”
名称=“什么”
交易:
Type =“Gizmo”
日期=“2011年3月6日”
名称=“何时”
我希望最终得到以下内容,按类型分组。如果有多个,则按日期按时间顺序返回第一个。
交易:
Type =“Widget”
日期=“3/1/2011”
Name =“Foo”
交易:
Type =“Gadget”
日期=“2011年3月2日”
名字=“Baz”
交易:
Type =“Gizmo”
日期=“3/1/2011”
姓名=“谁”
答案 0 :(得分:3)
以流利的形式:
var groups = transactions.GroupBy(t => t.Type)
.Select(g => g.OrderBy(t => t.Date).First());
在查询表格中:
var groups = from t in transactions
group t by t.Type into g
select g.OrderBy(t => t.Date).First();
答案 1 :(得分:1)
这应该有效:
var groupedTransactions = transactions.GroupBy(t => t.Type)
.Select(g => g.OrderBy(t => t.Date).FirstOrDefault());
答案 2 :(得分:1)
类似
var q =
from t in MyTypes
group t by t.Type into g
select g.OrderBy(t => t.Date).First();