Я пытаюсь найти пересечение в двух коллекциях, где элементы перекрываются с обратным состоянием.
public class Sample
{
public int SampleNumber { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public bool SampleState { get; set; }
}
Пример:
List<Sample> ListOfSamples1 = new List<Sample>();
List<Sample> ListOfSamples2 = new List<Sample>();
ListOfSamples1.Add( new Sample() {SampleNumber=1, StartTime = new DateTime(2018, 12, 1, 0, 0, 0), EndTime = new DateTime(2018, 12, 1, 0, 10, 0), SampleState= true });
ListOfSamples1.Add( new Sample() {SampleNumber=2, StartTime = new DateTime(2018, 12, 1, 0, 20, 0), EndTime = new DateTime(2018, 12, 1, 0, 30, 0), SampleState= false });
ListOfSamples2.Add( new Sample() {SampleNumber=3, StartTime = new DateTime(2018, 12, 1, 0, 5, 0), EndTime = new DateTime(2018, 12, 1, 0, 7, 0), SampleState= false});
ListOfSamples2.Add( new Sample() {SampleNumber=4, StartTime = new DateTime(2018, 12, 1, 0, 21, 0), EndTime = new DateTime(2018, 12, 1, 0, 22, 0), SampleState= true});
Я хочу вернуть образцы изListOfSamples2
, которые пересекаются с выборками, существующими в ListOfSamples1
, где SampleState
противоположен.
Например, ListOfSamples2[0]
имеет StartTime
и EndTime
, которые находятся в ListOfSamples1[0]
иих состояния противоположны.
Я делаю это с ForEach
, но ищу более элегантный способ сделать это, у которого есть больше возможностей.
Спасибо