c # сравнить начало DateTime и остановку DateTime с List <DateTime> - PullRequest
4 голосов
/ 09 мая 2011

Как следует из названия:

У меня есть DateTime start и DateTime stop

Теперь я хочу сравнить их с List<DateTime> dates

Я просто хочу проверить, находится ли список dates между start и stop

if(dates.all(..... >= start && <= stop)) { . do something }

Ответы [ 6 ]

8 голосов
/ 09 мая 2011

Псевдокод в вашем вопросе находится недалеко от рабочего кода, который вы ищете.

Использование LINQ's All () метод:

if (dates.All(date => date >= start && date <= stop)) {
    // Do something.
}
4 голосов
/ 09 мая 2011

Сортировка списка.Убедитесь, что первый элемент в списке> = дата начала и последний элемент в списке <= дата окончания </p>

2 голосов
/ 09 мая 2011

Если вы хотите перебрать только даты в скобках, вы можете использовать следующее:

foreach (DateTime date in dates.Where(o => o >= start && o <= stop))
{
    //Do your thing.
}
2 голосов
/ 09 мая 2011

Используйте метод расширения All и лямбда-выражение, которое выполняет сравнение:

if (dates.All(d => d >= start && d <= stop)) { ... }
2 голосов
/ 09 мая 2011

С linq: if(dates.All(d => d >= start && d <= stop))

1 голос
/ 09 мая 2011

Вы можете работать над этим как

bool allTrue = LstDates.TrueForAll(delegate(DateTime dt) { return dt >= startDate && dt <= endDate; });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...