public virtual bool MoveNext() { if (ReachedEnd()) { _current = null; return(false); } if (_current == null) { _current = _cursor.ShallowClone(); } else { _cursor.CopyTo(_current); } _cursor = _cursor.UnsafeFastNext(); return(true); }