public override IEnumerator <ICollection <TValue> > GetEnumerator() { using (IEnumerator <TKey> enumKeys = myDictionary.EnumerateKeys()) { while (enumKeys.MoveNext()) { TKey key = enumKeys.Current; yield return(new ValuesForKeyCollection(myDictionary, key)); } } }
public override IEnumerator <KeyValuePair <TKey, TValue> > GetEnumerator() { using (IEnumerator <TKey> enumKeys = myDictionary.EnumerateKeys()) { while (enumKeys.MoveNext()) { TKey key = enumKeys.Current; IEnumerator <TValue> enumValues; if (myDictionary.TryEnumerateValuesForKey(key, out enumValues)) { using (enumValues) { while (enumValues.MoveNext()) { yield return(new KeyValuePair <TKey, TValue>(key, enumValues.Current)); } } } } } }
public override IEnumerator <TKey> GetEnumerator() { return(myDictionary.EnumerateKeys()); }