我有一個小問題,我想在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命令列表,並在列表中找到第一個列表,但如果有更安全的方法來獲取它,那麼不需要以正確順序找到正確的列表,以找到正確的Turn。
我已經說了一個解決方案,但是您可以更具體的條款來選擇合適的轉,請嗎? – Noldorin 2009-05-05 14:15:33