I have two collections a and b. I would like to compute the set of items in either a or b, but not in both (a logical exc
a
b
Given a.Except(b) and b.Except(a) are disjoint, you can use concat instead of union, saving a set operator (and concat is more efficient).
concat
union
return a.Except (b).Concat (b.Except (a));
This still runs through each list twice.