我有一个像'obj1'
我想将其添加到列表中。我可以通过添加它list1.add(obj1)
.现在一旦我更新obj1
,我的列表中的对象也在更新! (我知道我在这里处理参考文献)
我的要求需要修改obj1
并再次将其添加到列表中!我没有两个不同的对象,而是只有一个,因为对于它们两个来说,引用是相同的 -obj1
.
有什么办法可以修改这个obj1
并将其添加到列表中,但仍然不会丢失旧的?任何解决方法都会非常有帮助!
提前致谢!
C# 语言不支持对象的克隆。因此,如果obj1
不是值对象(即结构),你不能这样做。注:有可能实施ICloneable
, 然而,不建议使用它 https://stackoverflow.com/questions/699210/why-should-i-implement-icloneable-in-c.
我在另一个项目中使用的一种方法是使用自动映射器 https://github.com/AutoMapper/AutoMapper在插入列表之前创建对象的副本。例子:
MyType copy = Mapper.DynamicMap(obj1);
list.Add(copy);
请仅对值持有者类型使用该方法,特别是对于实现IDisposable
或类似的东西。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)