我有一本通用词典 Dictionary<string, T>
我想从本质上提出一个 Clone() of ..any suggestions。
最佳答案
(注意:虽然克隆版本可能有用,但对于简单的浅拷贝,我在另一篇文章中提到的构造函数是更好的选择。)
您希望副本有多深,您使用的是哪个版本的 .NET?如果您使用的是 .NET 3.5,我怀疑对 ToDictionary 的 LINQ 调用(同时指定键和元素选择器)将是最简单的方法。
例如,如果您不介意该值是浅克隆:
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key,
entry => entry.Value);
如果您已经约束 T 来实现 ICloneable:
var newDictionary = oldDictionary.ToDictionary(entry => entry.Key,
entry => (T) entry.Value.Clone());
(那些未经测试,但应该有效。)
关于c# - 克隆/深度复制 .NET 泛型 Dictionary<string, T> 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/139592/