public int Compare(ISeq <A> x, ISeq <A> y) { if (ReferenceEquals(x, y)) { return(0); } if (ReferenceEquals(x, null)) { return(-1); } if (ReferenceEquals(y, null)) { return(1); } var enumx = x.GetEnumerator(); var enumy = y.GetEnumerator(); while (true) { bool r1 = enumx.MoveNext(); bool r2 = enumy.MoveNext(); if (!r1 && !r2) { return(0); } if (!r1) { return(-1); } if (!r2) { return(1); } var cmp = default(ORD).Compare(enumx.Current, enumy.Current); if (cmp != 0) { return(cmp); } } }
public IEnumerator <T> GetEnumerator() { return(innerSeq.GetEnumerator()); }
public override IEnumerator <U> GetEnumerator() => seq.GetEnumerator().Select(fn);
public override IEnumerator <T> GetEnumerator() => seq.GetEnumerator().Skip(start).Take(count);