Join может использоваться для решения этой проблемы. Это решение для объединения двух коллекций по некоторому условию. В вашем случае вы можете заменить левую и правую анонимную коллекцию на ObservableCollection
var left = new[] {
new { Arrival = 10, Departure = 20 },
new { Arrival = 10, Departure = 30 },
new { Arrival = 10, Departure = 10 }
};
//This collection contains duplicates hence needs to be removed either before or later joining the collection.
var right = new[] {
new { Arrival = 10, Departure = 20 },
new { Arrival = 10, Departure = 30 },
new { Arrival = 10, Departure = 20 }
};
var result =
left.Distinct() //remove duplicates
.Join(right.Distinct(), // Remove duplicates
right => new { right.Arrival, right.Departure },
left => new { left.Arrival, left.Departure },
(l, r) => new { r, l } // Matching elements in both collections use can return either of noth
).ToList();//To list is called to execute the query and get result
Призываем проверить больше здесь