我有一个Object数组,显示以下数据:
Arrival City|| Arrival Country || Journey Date || Non-Stop Price || One-Stop Price || Multi-Stop Price
===========================================================================================================
SYD || AU || 4/9/2014 || - || - ||863.79 ||903.29 ||
DEL || IN || 4/10/2014 || - || - ||820.00 ||750.70 ||
SYD || AU || 4/10/2014 || - || - ||923.70 ||903.70 ||
SYD || AU || 4/15/2014 || - || - || 1455.91 ||1021.40 ||
CHI || US || 4/25/2014 || - || - || - ||191.90 ||146.00
CHI || US || 5/1/2014 || - || - || - ||201.90 ||143.00
上表显示了City对及其票价。 我想要每个日期的最低价格,即2014年4月10日,所有三种价格中最低的 - 应该是 - 750.70
我尝试了Linq来获取日期,但我不知道如何获得特定日期的最低票价。
var distict = result.Select(p => p.JourneyDate).Distinct();
答案 0 :(得分:3)
我认为这最简单的方法是首先在日期进行GroupBy,然后获取您日期的非止损价格的最小值。
x.GroupBy(s => s.Date
).Select(s => new {
Date = s.Key,
Price = s.SelectMany(f => new Decimal[] { f.NonStopPrice, f.MultiStopPrice, f.OneStopPrice }).Min()
});
我假设你的价格是十进制的。