深度克隆一组相互关联的对象的最佳方法是什么?例子:
class A {
B theB; // optional
// ...
}
class B {
A theA; // optional
// ...
}
class Container {
A[] a;
B[] b;
}
显而易见的事情是遍历对象并深入克隆所有内容。然而,这会产生一个问题——如果我克隆一个A
包含 aB
并且B
也在 中的Container
,那么B
在我克隆Container
.
下一个合乎逻辑的步骤是在克隆它之前创建Dictionary
并查找每个对象。然而,这似乎是一个缓慢且不优雅的解决方案。
有什么想法吗?