Как следует из названия:
У меня есть DateTime start и DateTime stop
DateTime start
DateTime stop
Теперь я хочу сравнить их с List<DateTime> dates
List<DateTime> dates
Я просто хочу проверить, находится ли список dates между start и stop
dates
start
stop
if(dates.all(..... >= start && <= stop)) { . do something }
Псевдокод в вашем вопросе находится недалеко от рабочего кода, который вы ищете.
Использование LINQ's All () метод:
if (dates.All(date => date >= start && date <= stop)) { // Do something. }
Сортировка списка.Убедитесь, что первый элемент в списке> = дата начала и последний элемент в списке <= дата окончания </p>
Если вы хотите перебрать только даты в скобках, вы можете использовать следующее:
foreach (DateTime date in dates.Where(o => o >= start && o <= stop)) { //Do your thing. }
Используйте метод расширения All и лямбда-выражение, которое выполняет сравнение:
All
if (dates.All(d => d >= start && d <= stop)) { ... }
С linq: if(dates.All(d => d >= start && d <= stop))
if(dates.All(d => d >= start && d <= stop))
Вы можете работать над этим как
bool allTrue = LstDates.TrueForAll(delegate(DateTime dt) { return dt >= startDate && dt <= endDate; });