Esempio n. 1
0
        public void TestCombined2()
        {
            OrderedSet <Int32> First = OrderedSet.SortArrayAndGetSet(new Int32[] { 0, 1, 3 });

            AssertEquals(new Int32[] { 0, 1, 3 }, First.orderedSet);

            OrderedSet <Int32> Second = First.Combine(OrderedSet.SortArrayAndGetSet(new Int32[] { 0, 2 }));

            AssertEquals(new Int32[] { 0, 1, 2, 3 }, Second.orderedSet);
        }
Esempio n. 2
0
        // NOTE: this can probably be made more efficient
        public static OrderedSet <T> Combine <T>(this IEnumerable <OrderedSet <T> > sets)
        {
            IEnumerator <OrderedSet <T> > enumerator = sets.GetEnumerator();

            if (!enumerator.MoveNext())
            {
                return(default(OrderedSet <T>));
            }

            OrderedSet <T> combined = enumerator.Current;

            while (enumerator.MoveNext())
            {
                combined = combined.Combine(enumerator.Current);
            }

            return(combined);
        }