private int GetNextNonEmptyQueue(int queueIndex) { for(int i = queueIndex+1; i < _queuesCount; ++i) { if(_queues[i].Count > 0) { return i; } } return -1; }
public void Reset() { _version = _priorityQueue._version; _queueIndex = _priorityQueue.GetNextNonEmptyQueue(-1); if (_queueIndex >= 0) { _enumerator = _priorityQueue._queues[_queueIndex].GetEnumerator(); } else { _enumerator = null; } }