gpt4 book ai didi

c# - 如何深度克隆 C# 中的互连对象?

转载 作者:太空狗 更新时间:2023-10-29 23:11:59 26 4
gpt4 key购买 nike

深度克隆一组相互关联的对象的最佳方法是什么?示例:

class A {
B theB; // optional
// ...
}

class B {
A theA; // optional
// ...
}

class Container {
A[] a;
B[] b;
}

显而易见的事情是遍历对象并在我到达它时深度克隆所有内容。然而,这会产生一个问题——如果我克隆一个包含 BA,并且 B 也在 Container< 中,在我克隆Container之后,B将被克隆两次。

下一个合乎逻辑的步骤是创建一个 Dictionary 并在克隆之前查找每个对象。然而,这似乎是一个缓慢且不优雅的解决方案。

有什么想法吗?

最佳答案

这肯定不是一个优雅的解决方案,但使用字典(或 HashMap )并不少见。其中一个好处是 HashMap 具有恒定的查找时间,因此速度在这里并没有真正受到影响。

关于c# - 如何深度克隆 C# 中的互连对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/683435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com