linqを使用してリスト内の次のアクティブな項目を探したい場合に問題があります。次に、次のアクティブな項目は、startDateとEndDateによって定義されます。ここに例のリストがあります。LINQを使用してリスト内の次のアクティブな項目を取得する方法
//-- Create Lists of turns
IList<Turn> turns= new List<Turn>(){
new Turn(){Name = "Turn 1", StartDate = DateTime.Parse("2009-05-01"), EndDate = DateTime.Parse("2009-05-01") }
, new Turn(){Name = "Turn 2", StartDate = DateTime.Parse("2009-06-01"), EndDate = DateTime.Parse("2009-06-01") }
, new Turn(){Name = "Turn 3", StartDate = DateTime.Parse("2009-07-01"), EndDate = DateTime.Parse("2009-07-02") }
, new Turn(){Name = "Turn 4", StartDate = DateTime.Parse("2009-08-01"), EndDate = DateTime.Parse("2009-08-03") }
}
//-- Get the next Turn by DateTime.
DateTime toDay = DateTime.Parse("2009-06-02");
//-- Should return the "Turn 3" item...
Turn turn = (from item in turns
where .....
select turn).FirstOrDefault<Turn>();
TurnでstartDate/endDateプロパティを使用して次のターンを見つける良い方法はありますか?私はstartdateでリストを最初に注文し、リストの最初のものを見つけようとしましたが、もっと正しい "ターン"を見つけるためにリストを必要としないようにもっと安全な方法があれば尋ねます。
私は解決策を提案しましたが、適切なターンを選択する条件についてより具体的に説明できますか? – Noldorin