public bool MoveNext() { EnumeratorHelper.CheckVersion(this.ver, this.pq.version); EnumeratorHelper.EnumeratorState state = this.state; if (state == EnumeratorHelper.EnumeratorState.Before) { if (this.pq.Count == 0) { this.state = EnumeratorHelper.EnumeratorState.After; return(false); } this.state = EnumeratorHelper.EnumeratorState.Current; this.index = 1; return(true); } if (state != EnumeratorHelper.EnumeratorState.After) { if (++this.index <= this.pq.Count) { return(true); } this.state = EnumeratorHelper.EnumeratorState.After; } return(false); }
internal Enumerator(PriorityQueue <T> pq) { this.pq = pq; this.ver = pq.version; this.index = -1; this.state = EnumeratorHelper.EnumeratorState.Before; }
public Enumerator(HashMultiMap <TKey, TValue> multimap) { this.multimap = multimap; this.ver = multimap.version; this.state = EnumeratorHelper.EnumeratorState.Before; this.keyEnumerator = null; this.valueEnumerator = null; }
public bool MoveNext() { bool flag; EnumeratorHelper.CheckVersion(this.ver, this.multimap.version); EnumeratorHelper.EnumeratorState state = this.state; if (state == EnumeratorHelper.EnumeratorState.Before) { this.keyEnumerator = this.multimap.data.Keys.GetEnumerator(); flag = this.keyEnumerator.MoveNext(); if (!flag) { this.state = EnumeratorHelper.EnumeratorState.After; } else { this.valueEnumerator = this.multimap.data[this.keyEnumerator.Current].GetEnumerator(); this.valueEnumerator.MoveNext(); this.state = EnumeratorHelper.EnumeratorState.Current; } return(flag); } if (state == EnumeratorHelper.EnumeratorState.After) { return(false); } flag = this.valueEnumerator.MoveNext(); if (!flag) { flag = this.keyEnumerator.MoveNext(); if (flag) { this.valueEnumerator = this.multimap.data[this.keyEnumerator.Current].GetEnumerator(); this.valueEnumerator.MoveNext(); } } if (!flag) { this.state = EnumeratorHelper.EnumeratorState.After; } return(flag); }
void IEnumerator.Reset() { EnumeratorHelper.CheckVersion(this.ver, this.pq.version); this.state = EnumeratorHelper.EnumeratorState.Before; }
public void Reset() { this.state = EnumeratorHelper.EnumeratorState.Before; }