我有一个包含项目的列表,这些项目具有 Time
属性。如果我想选择 Time
等于或大于某个 startTime
的所有项目,那么我会这样写:
var newList = list.Where(i => (i.Time >= startTime));
但现在我还想获取最后一项,其中时间小于startTime
。有没有更好的方法来实现它?
例如,我有一个列表,其中的项目具有来自此列表的 Time
:
[5:32, 5:46, 5:51, 6:07, 6:11, 6:36]
我们将 startTime
指定为 6:00
。
现在我们想得到这个时间:
[5:51, 6:07, 6:11, 6:36]
最佳答案
一次获取整个列表:
var newList = list
.OrderByDescending(i => i.Time)
.Take(list.Count(j => j.Time >= startTime) + 1)
.OrderBy(k => k.Time); //Optional
根据Cognition的建议:
var newList = list
.OrderBy(i => i.Time)
.Skip(list.Count(j => j.Time < startTime - 1));
关于c# - 从列表中选择最后一个错误的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37354980/