У меня есть небольшая проблема, когда я хочу найти следующий «активный» элемент в списке с 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>();
Есть ли хорошее решение, чтобы найти следующий поворот, используя свойства startDate/endDate на Turn. Я попробовал сначала заказать список по startdate и найти First в списке, но я понял, что существует более «безопасный» способ получить его, чтобы он не нуждался в списке в правильном порядке, чтобы найти правильный Turn.
У меня есть решение, но не могли бы вы уточнить условия, на которых можно выбрать подходящий поворот, пожалуйста? – Noldorin