//we cant just use dictionary's copy ctor, because it will shallow copy the values public object Clone() { var dest = new GroupValueOverrides <TKey>(); foreach (var kvp in this) { var clonedValue = new ValueOverrideList <TKey>(kvp.Value); dest.Add(kvp.Key, clonedValue); } return(dest); }
public ValueOverrideList(ValueOverrideList <TKey> source) : base() { var clonedItems = source.Select(i => (ValueOverride <TKey>)i.Clone()); AddRange(clonedItems); }