I have two ObservableCollection lists, that i want to unite. My naive approach was to use the Union - Method:
ObservableCollection unitedPoints = ob
The LINQ Union
extension method returns an IEnumerable. You will need to enumerate and add each item to the result collection:-
var unitedPoints = new ObservableCollection<Point> ();
foreach (var p in observableCollection1.Union(observableCollection2))
unitedPoints.Add(p);
If you'd like a ToObservableCollection then you can do:
public static class MyEnumerable
{
public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> source)
{
var result = new ObservableCollection<T> ();
foreach (var item in source)
result.Add(item);
return result;
}
}
Now your line is:
var unitedPoints = observableCollection1.Union(observableCollection2).ToObservableCollection();
Do you want to merge the existing contents, but then basically have independent lists? If so, that's relatively easy:
ObservableCollection<Point> unitedPoints = new ObservableCollection<Point>
(observableCollection1.Union(observableCollection2).ToList());
However, if you want one observable collection which is effectively a "view" on others, I'm not sure the best way to do that...