让我们说这张桌子存储了每天的高温
date high temperature
==== ===========
5/15 98
5/14 97
5/13 92
5/12 82
5/11 93
5/10 91
5/9 88
如果最近的日期在90以上,则我希望连续出现的最早的日期在90以上。在上面的数据集中,我想要的是5/13。
我尝试过的
var consecutives = records.OrderByDescending(i=>i.Date).TakeWhile(i=>i.Temperature > 90);
var earliest = consecutives.Min(i=>i.Date);
是否有更有效的方法?
答案 0 :(得分:1)
您只需在TakeWhile
之后获得最新的商品:
var earliset = records
.OrderByDescending(i => i.Date)
.TakeWhile(i => i.Temperature > 90)
.LastOrDefault();
如果最近的行的温度低于90,则将返回null。