1

次のようなプロパティとして開始時刻と終了時刻を持つプロパティクラスのリストがあります。 List<PropSchedules>

PropSchedules   
{  
 DateTime StartTime,  
 DateTime EndTime  
}

値は次のようなものです:

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

今は時間がありますが、開始時間が最も短いのはどれかを知りたいです。

時間があれば、10:00のように、2番目のアイテムが最も低くなります。

したがって、誰もが同じものを取得するためのショートカットを持っているか、ループを実行してそれぞれをチェックする必要があります。

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

値を頻繁に挿入および削除する場合は、 SortedListまたはSortedDictonaryを使用して、問題がないことを確認できます。

于 2013-03-26T12:47:52.220 に答える
1

クラスPropSchedulesを検討する

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

およびPropSchedulesのリスト

List<PropSchedules> listSchedules;

開始という名前の参照日:

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 に答える