1

我有一个属性类列表,其中包含开始时间和结束时间作为属性,例如: List<PropSchedules>

PropSchedules   
{  
 DateTime StartTime,  
 DateTime EndTime  
}

值是这样的:

Starttime   EndTime
07:00       09:00
11:00       14:00
15:00       20:00

现在我有时间,我想知道哪一个是最低的更大的开始时间。

就像我有时间说,10:00 那么第二个项目是最低的。

所以,任何人都有一些捷径可以得到相同的东西,或者我必须循环并检查每一个。

4

4 回答 4

5

尝试:

your_list.Where(x => x.Starttime > XXXX).Min(. . .)
于 2013-03-26T12:42:50.747 回答
2

如果我理解这个问题,像这样的事情?

List<PropSchedules> propSchedules = // ...
DateTime Time = // ...

var closest = propSchedules
    .Where(e => e.StartTime > Time)
    .Select(e => e.StartTime)
    .Min();
于 2013-03-26T12:45:32.827 回答
2

如果您要插入和删除很多值,则可以使用 SortedListSortedDictonary来确保事情井井有条。

于 2013-03-26T12:47:52.220 回答
1

考虑一个类 PropSchedules

class PropSchedules
{
    public DateTime StartTime;
    public DateTime EndTime;
}

和 PropSchedules 列表

List<PropSchedules> listSchedules;

和一个名为 start 的参考日期:

DateTime start = DateTime.Now; // for example

然后你可以找到下一个 PropSchedules :

PropSchedules next = listSchedules.Where(s => s.StartTime > start).OrderBy(s => s.StartTime).FirstOrDefault();

如果没有更低的值,next 可以为 null

于 2013-03-26T12:46:16.753 回答