public static StringSet operator +(StringSet first, StringSet second) { var result = new StringSet(); CopyItems(first, result); CopyItems(second, result); return result; }
public static StringSet operator -(StringSet first, StringSet second) { var result = new StringSet(); foreach (var item in first._items) { if (second._items.Contains(item)) result.Add(item); } return result; }
private static void CopyItems(StringSet source, StringSet destination) { foreach (var item in source._items) { destination.Add(item); } }
public StringSet Union(StringSet second) { return this + second; }
public StringSet Intersect(StringSet second) { return this - second; }