public bool MoveNext() { if (_firstCall) { _firstCall = false; return _remaining-- > 0 && _en.MoveNext(); } if (_remaining < 0) return false; bool r = _en.MoveNext(); return r && _remaining-- > 0; }