LINQ大于列表中的任何值



我有一个具有StartDate属性的对象列表,但我将其筛选为仅日期。

因此ListOfDates包含2016-04-052016-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)

相关内容

最新更新