Исключая DateTimes в пределах диапазона - PullRequest
0 голосов
/ 18 октября 2018

Я хотел бы получить некоторые разъяснения относительно точности моей логики диапазона даты и времени, я хочу исключить любые даты из доступных, которые живут в диапазоне дат недоступной даты.

, т. Е. Если начало 17/10/2018- 22:35 ||Конец 17/10/2018 23:00 была недоступной датой, поэтому результат не должен содержать объекты, свойства Start и End которых находятся между этими двумя значениями DateTimes.

Спасибо

var unavailable = new List<obj>();
var available = new List<obj>();

var result = available.Where(x => !unavailable.Any(y => y.Start > x.Start && y.End < 
x.End);

public class obj 
{
   public DateTime Start {get; set;}
   public DateTime End {get; set;}
}

1 Ответ

0 голосов
/ 18 октября 2018

Ваша пересекающаяся логика ошибочна.Сделайте это как (трогательно исключая края):

var result = available.Where(x => 
     !unavailable.Any(y => y.Start < x.End && y.End > x.Start));

public class DateRange // obj is awkward naming 
{
   public DateTime Start {get; set;}
   public DateTime End {get; set;}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...