public IEnumerator <KeyValuePair <K, V> > GetEnumerator() { HashSet <KeyValuePair <K, V> > dupSet = new HashSet <KeyValuePair <K, V> >( EqualityComparerExtensions.FromValueSelector <KeyValuePair <K, V> >(kvp => kvp.Key)); IEnumerable <KeyValuePair <K, V> > elements = Immutable .Concat(Adaptee); foreach (KeyValuePair <K, V> kvp in elements) { if (dupSet.Add(kvp)) { yield return(kvp); } } }