我正在努力进行分组linq查询
我有这个:
DateTime dateFrom = new Date(2014,8,2);
var GroupedPrices = Prices.Where(p => p.ArrivalDateFrom <= dateFrom
&&
p.ArrivalDateTo > dateFrom)
.GroupBy(p => p.ItemID);
我试图获得每个ID的单一价格 - 例如。来自/来自每个组,基于该价格的最新ValidFrom日期。 我已经开始通过他们的ItemID(而不是个人价格记录ID)对它们进行分组,但我正在努力研究如何根据最新的ValidFrom日期获取一个。我认为我可以在分组之前订购它们,但不确定在分组完成后它会坚持下去...即
期望它会使用Max(x=>x.ValidFrom)
类型的内容或OrderByDescending(x=>x.ValidFrom).First()
,但无法解决此问题
任何非常感谢的帮助
感谢
答案 0 :(得分:1)
我想你最后需要选择你想要的东西,如下:
DateTime dateFrom = new Date(2014,8,2);
var GroupedPrices = Prices
.Where(p => p.ArrivalDateFrom <= dateFrom && p.ArrivalDateTo > dateFrom)
.GroupBy(p => p.ItemID)
.Select(g => new{ ItemId = g.Key, NewestPrice = g.OrderByDescending(p => p.ValidFrom).First() });