Пример #1
0
 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);
 }
Пример #2
0
 internal Enumerator(PriorityQueue <T> pq)
 {
     this.pq    = pq;
     this.ver   = pq.version;
     this.index = -1;
     this.state = EnumeratorHelper.EnumeratorState.Before;
 }
Пример #3
0
 public Enumerator(HashMultiMap <TKey, TValue> multimap)
 {
     this.multimap        = multimap;
     this.ver             = multimap.version;
     this.state           = EnumeratorHelper.EnumeratorState.Before;
     this.keyEnumerator   = null;
     this.valueEnumerator = null;
 }
Пример #4
0
            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);
            }
Пример #5
0
 void IEnumerator.Reset()
 {
     EnumeratorHelper.CheckVersion(this.ver, this.pq.version);
     this.state = EnumeratorHelper.EnumeratorState.Before;
 }
Пример #6
0
 public void Reset()
 {
     this.state = EnumeratorHelper.EnumeratorState.Before;
 }