У меня есть класс, который содержит информацию о дате периода, начала и конца:
public class A
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
}
, тогда у меня есть список объектов A, где я объявил несколько периодов:
List<A> listOfA = new List<A>()
{
new A {Id=1,Name="1", Start = new DateTime (2020,1,1), End = new DateTime(2020,1,20) },
new A {Id=2,Name="2", Start = new DateTime (2020,1,21), End = new DateTime(2020,2,20) },
new A {Id=3,Name="3", Start = new DateTime (2020,5,11), End = new DateTime(2020,5,14) },
new A {Id=4,Name="4", Start = new DateTime (2020,5,15), End = new DateTime(2020,5,20) }
};
Я хочу найти связь (перекрывающуюся, содержащую et c.) Между заданными периодами и периодами в списке:
var wrong = new A { Id = 5, Name = "5", Start = new DateTime(2020, 1, 3), End = new DateTime(2020, 4, 20) };
var ok = new A { Id = 6, Name = "6", Start = new DateTime(2020, 4, 3), End = new DateTime(2020, 4, 14) };
В приведенном выше примере неправильный объект имеет дату начала внутри одного из объектов в списке и хорошо к объекту отношения не имеют. Как найти это отношение с помощью LINQ?