好的,.NET 2.0回答:
如果您不需要克隆值,则可以使用Dictionary的构造函数重载,它使用现有IDictionary。(您也可以将比较器指定为现有字典的比较器。)
如果您 确实 需要克隆值,则可以使用以下方法:
public static Dictionary<TKey, TValue> CloneDictionaryCloningValues<TKey, TValue> (Dictionary<TKey, TValue> original) where TValue : ICloneable{ Dictionary<TKey, TValue> ret = new Dictionary<TKey, TValue>(original.Count, original.Comparer); foreach (KeyValuePair<TKey, TValue> entry in original) { ret.Add(entry.Key, (TValue) entry.Value.Clone()); } return ret;}
当然,这也依赖于
TValue.Clone()适当深的克隆。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)