我有一个具有StartDate
属性的对象列表,但我将其筛选为仅日期。
因此ListOfDates
包含2016-04-05
、2016-04-07
或更多。
我有另一个RequestDate
对象列表,其日期范围从2014年到2016年。
如果条件为RequestDate
大于ListOfDates
中的任何日期,我如何编写LINQ?我正在寻找类似Contains
的东西,但可以进行比较。
请参阅下面的代码:
var objects = RequestObjects.Where(r => r.RequestDate > ListOfDates.Max());
假设你正在与一个日期进行比较(根据你的问题,我还不完全清楚),你正在寻找Any
:
bool answer = ListOfDates.Any(date => RequestDate > date);
我想这就是您想要的。
request.Where(r => ListOfDates.All(d => d < r.RequestDate))
然而,首先获得最大值,然后过滤会更快:
var max = ListOfDates.Max();
var match = requests.Where(r => r.RequestDate > max)