У меня проблема с решением C#, проблема стала слишком сложной для простого решения.Как создать список диапазонов времени на основе пересечений из двух списков временных диапазонов?
У меня есть два списка временных диапазонов плюс значение для каждого диапазона: ListA; LISTB. Между ними нет никакой связи.
Я хотел бы создать третий список (ListC) на основе ListB, где для каждой пары начала и конца в ListB, если диапазон не существует в целом в любом временном диапазоне в ListA, создайте две или несколько записей в ListC, чтобы новые записи были охвачены записями в ListA. (Извините, это трудно объяснить, не будучи слишком подробным)
Простой пример, который содержит один вид перекрытия. Между двумя списками могут быть всевозможные совпадения.
List<Tuple<int, DateTime, DateTime>> listA = new List<Tuple<int, DateTime, DateTime>>();
listA.Add(new Tuple<int, DateTime, DateTime>(22,DateTime.Parse("09/01/2013 11:00"),DateTime.Parse("09/01/2013 12:00")));
listA.Add(new Tuple<int, DateTime, DateTime>(66, DateTime.Parse("09/01/2013 12:01"), DateTime.Parse("09/01/2013 14:00")));
List<Tuple<int, DateTime, DateTime>> listB = new List<Tuple<int, DateTime, DateTime>>();
listB.Add(new Tuple<int, DateTime, DateTime>(33, DateTime.Parse("09/01/2013 11:30"), DateTime.Parse("09/01/2013 13:30")));
//Desired List
List<Tuple<int, DateTime, DateTime>> listC = new List<Tuple<int, DateTime, DateTime>>();
//listC should contain 2 tuples: first tuple contains the segment from ListB which falls in the first ListA tuple: Tuple(33, "09/01/2013 11:30","09/01/2013 12:00")
//second tuple contains the segment which falls in second ListA tuple: Tuple(33, "09/01/2013 12:01","09/01/2013 13:30")