Как лучше всего глубоко клонировать взаимосвязанный набор объектов? Пример:
class A {
B theB; // optional
// ...
}
class B {
A theA; // optional
// ...
}
class Container {
A[] a;
B[] b;
}
Очевидная вещь, которую нужно сделать, это пройтись по объектам и глубоко клонировать все, как я подхожу к этому. Однако это создает проблему - если я клонирую A
, который содержит B
, и что B
также находится в Container
, то B
будет клонирован дважды после того, как я клонирую Container
.
Следующим логическим шагом является создание Dictionary
и поиск каждого объекта, прежде чем я его клонирую. Однако, похоже, что это может быть медленное и неблагодарное решение.
Есть мысли?