克隆深复制.NET通用词典的最佳方法是什么?

克隆深复制.NET通用词典的最佳方法是什么?,第1张

克隆/深复制.NET通用词典的最佳方法是什么?

好的,.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()
适当深的克隆。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5499079.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存