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()); }
public override T Peek() { T rval = first.Peek(); if (rval == null) { rval = second.Peek(); } return(rval); }