public static OrderedSet <T> operator *(OrderedSet <T> s, OrderedSet <T> t) { OrderedSet <T> r; if (s.Count < t.Count) { r = new OrderedSet <T>(s.count, s.elems); foreach (T o in s) { if (!t.Contains(o)) { r.InPlaceRemove(o); } } } else { r = new OrderedSet <T>(t.count, t.elems); foreach (T o in t) { if (!s.Contains(o)) { r.InPlaceRemove(o); } } } return(r); }
public static OrderedSet <T> operator -(OrderedSet <T> s, OrderedSet <T> t) { OrderedSet <T> r = new OrderedSet <T>(s.count, s.elems); foreach (T o in t) { r.InPlaceRemove(o); } return(r); }