public RangeEnumerator(ArrayBase <T> internalList, MemoryType memoryType) : base(memoryType) { _rangeEnumeratorArrayBase = internalList; IteratorState = -1; _index = 0; }
internal Range(ArrayBase <T> thebase, int start, int count, bool forwards, MemoryType memoryType = MemoryType.Normal) { this.thebase = thebase; stamp = thebase.stamp; delta = forwards ? 1 : -1; this.start = start + thebase.offsetField; this.count = count; _rangeInternalEnumerator = new RangeEnumerator(thebase, memoryType); }
internal void UpdateReference(ArrayBase <T> list, int start, int end, int theStamp) { _internalIncrementalIndex = start; _end = end; _internalList = list; Current = default(T); _theStamp = theStamp; }
internal void UpdateReference(ArrayBase <T> list, int start, int delta, int theStamp, int count) { _count = count; _start = start; _delta = delta; _rangeEnumeratorArrayBase = list; Current = default(T); _theStamp = theStamp; }
public override bool MoveNext() { ArrayBase <T> list = _rangeEnumeratorArrayBase; list.modifycheck(_theStamp); if (_index < _count) { Current = list.array[_start + _delta * _index]; _index++; return(true); } Current = default(T); return(false); }
public override bool MoveNext() { ArrayBase <T> list = _internalList; if (list.stamp != _theStamp) { throw new CollectionModifiedException(); } if (_internalIncrementalIndex < _end) { Current = list.array[_internalIncrementalIndex]; _internalIncrementalIndex++; return(true); } Current = default(T); return(false); }
public Enumerator(ArrayBase <T> list, MemoryType memoryType) : base(memoryType) { _internalList = list; }