Сравнение списков DateTime, С# linq

У меня есть список в С#

List<dates>

public class Dates
{
 public DateTime Start {get; set;}
 public DateTime End {get; set;}
}
</dates>

В списке:

Начать конец

  1. 2014-03-17 09:00:00 - 2014-03-17 10:00:00
  2. 2014-03-17 10:59:59 - 2014-03-17 11:44:59

Как проверить, что мой startToCheck находится между Start, то же, что и endToCheck для завершения в этом списке?

Например:

startToCheck = 2014-03-17 11:00:00
endToCheck = 2014-03-17 12:00:00

Очевидно, мой startToCheck находится в списке nr2, но не находит его.

Я пытался

if (Start <= startToCheck && End >= endToCheck)

Но не работает... Любая помощь, пожалуйста?

благодаря

2 ответа

Если вы хотите обнаружить все перекрытия:

yourList.Where(x=> x.Start <= endToCheck && x.End >= startToCheck)


Похоже, вы пытаетесь определить, находится ли какое-либо значение Dates в списке между этим диапазоном. Если так, вы ищете метод Any

if (theList.Any(x => x.Start <= endToCheck && x.End >= startToCheck) { 
 ...
}

licensed under cc by-sa 3.0 with attribution.