public IEnumerator <KeyValuePair <TKey, TValue> > GetEnumerator() { foreach (var value in this.vector) { yield return(new KeyValuePair <TKey, TValue>(IndexedVector <TKey, TValue> .GetKey(value), value)); } }
public static IIndexedVector <TKey, TValue>?Clone <TKey, TValue>(IIndexedVector <TKey, TValue>?source, Func <TValue, TValue> cloneItem) where TKey : notnull where TValue : class { if (source is null) { return(null); } IndexedVector <TKey, TValue> vector = new IndexedVector <TKey, TValue>(source.Count); foreach (var pair in source) { var item = cloneItem(pair.Value); vector.Add(item); } return(vector); }