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