Ejemplo n.º 1
0
        public override bool MoveNext()
        {
            // TODO: Look at this method in the PeekingIterator<E> class in the Java source. I really think these lines are a bug, unless there's some Java (f**k-me-magic) going on.
            //if (first.MoveNext())
            //    return true;
            //else if (second.MoveNext())
            //    return true;

            T obj1 = first.Peek();
            T obj2 = second.Peek();

            bool isFirstObjGreaterOrEqual = (comparer.Compare(obj1, obj2) >= 0);

            return(isFirstObjGreaterOrEqual ? first.MoveNext() : second.MoveNext());
        }
Ejemplo n.º 2
0
        public override T Peek()
        {
            T rval = first.Peek();

            if (rval == null)
            {
                rval = second.Peek();
            }

            return(rval);
        }