예제 #1
0
        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);
        }
예제 #2
0
        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);
        }