Use Linq if you are not dealing with very large sets; but I guess not, as these are observable collections.
Considering
ObservableCollection<T> set1, ObservableCollection<T> set2
get intersection like:
var intersection = set1.Intersect(set2);
Use a special comparison comparisons, if and if necessary.
source share