LINQ 大于列表中的任何值

Jac*_*ack 2 c# linq

我有一个带有StartDate属性的对象列表,但我将其过滤为日期。

所以ListOfDates包含2016-04-052016-04-07或更多。

我还有另一个对象列表RequestDate,其日期范围从 2014 年到 2016 年。

如何编写一个条件RequestDate大于 中的任何日期的 LINQ ListOfDates?我正在寻找类似Contains但适用于比较的东西。

Ria*_*nli 5

见下面的代码:

var objects = RequestObjects.Where(r => r.RequestDate > ListOfDates.Max());
Run Code Online (Sandbox Code Playgroud)

  • 提前调用 Max() 效率更高。 (3认同)
  • @rbaghbanli:我很确定编译器不会用 Linq 优化它,并且 Max() 将在所有迭代中被调用。这是 Jon Skeet 的评论,似乎证实了这一点,并指出这种模式确实是 O(n^2):http://stackoverflow.com/a/1101979/81179(第一个要点,不是每个人都能看到他链接到的已删除答案)。 (2认同)