I thought that I understood Intersect, but it turns out I was wrong.
Intersect
List list1 = new List() { 1, 2, 3, 2, 3}; List<
var set = new HashSet(list1.Intersect(list2)); return list1.Concat(list2).Where(i=>set.Contains(i));