Example #1
0
        public TKey EnumeratorCurrent <TKey, TValue>(KeyCollectionEnumerator <TKey, TValue> enumerator)
        {
            if (enumerator.Index == 0 || (enumerator.Index == enumerator.Dictionary.Count + 1))
            {
                throw new Exception("Enumeration has either not started or has already finished.");
            }

            return(enumerator.Current);
        }
Example #2
0
        public void Reset <TKey, TValue>(KeyCollectionEnumerator <TKey, TValue> enumerator)
        {
            if (enumerator.Version != enumerator.Dictionary.Version)
            {
                throw new Exception("Collection was modified; enumeration operation may not execute.");
            }

            enumerator.Index   = 0;
            enumerator.Current = default(TKey);
        }
Example #3
0
        public bool MoveNext <TKey, TValue>(KeyCollectionEnumerator <TKey, TValue> enumerator)
        {
            if (enumerator.Version != enumerator.Dictionary.Version)
            {
                throw new Exception("Collection was modified; enumeration operation may not execute.");
            }

            while ((uint)enumerator.Index < (uint)enumerator.Dictionary.Count)
            {
                if (enumerator.Dictionary.Entries[enumerator.Index].HashCode >= 0)
                {
                    enumerator.Current = enumerator.Dictionary.Entries[enumerator.Index].Key;
                    enumerator.Index++;
                    return(true);
                }
                enumerator.Index++;
            }
            enumerator.Index   = enumerator.Dictionary.Count + 1;
            enumerator.Current = default(TKey);
            return(false);
        }
Example #4
0
 public void Dispose <TKey, TValue>(KeyCollectionEnumerator <TKey, TValue> enumerator)
 {
 }