Cách tốt nhất để sâu sao chép một tập hợp các đối tượng được kết nối với nhau? Ví dụ:Làm thế nào để sao chép các đối tượng liên kết sâu trong C#?
class A {
B theB; // optional
// ...
}
class B {
A theA; // optional
// ...
}
class Container {
A[] a;
B[] b;
}
Các điều hiển nhiên phải làm là đi bộ các đối tượng và sâu bản sao tất cả mọi thứ như tôi đến với nó. Tuy nhiên, điều này tạo ra sự cố - nếu tôi sao chép một số A
có chứa một số B
và B
cũng nằm trong số Container
, thì B
sẽ được sao chép hai lần sau khi tôi sao chép Container
.
Bước hợp lý tiếp theo là tạo Dictionary
và tra cứu mọi đối tượng trước khi sao chép nó. Điều này có vẻ như nó có thể là một giải pháp chậm và không có hiệu quả, tuy nhiên.
Mọi suy nghĩ?
dưới đây là cách tôi thực hiện: http://valueinjecter.codeplex.com/wikipage?title=Deep%20Cloning&referringTitle=Home – Omu