首页 > 后端开发 > C++ > 如何在 C# 中深度复制列表以避免共享引用?

如何在 C# 中深度复制列表以避免共享引用?

Patricia Arquette
发布: 2025-01-11 18:26:46
原创
346 人浏览过

How to Deep Copy a List in C# to Avoid Shared References?

创建 C# 列表的真正深层副本

挑战

在 C# 中简单地使用 new List<Book>(books_1) 克隆 List<T> 并不能创建完全独立的副本。 对克隆列表的更改也会影响原始列表,因为它们共享对底层对象的引用。

解决方案:深度复制方法

要实现真正的深层复制,确保对克隆列表的修改不会影响原始列表,请使用以下技术:

<code class="language-csharp">List<Book> books_2 = books_1.ConvertAll(book => new Book(book.title));</code>
登录后复制

此代码迭代原始列表 (Book) 中的每个 books_1 对象。对于每个对象,它使用构造函数创建一个 new Book 对象(此处隐含,假设 Book 有一个以 title 作为参数的构造函数)。 然后,这些新创建的 Book 对象将添加到新列表 (books_2)。 这保证了 books_2 包含来自 books_1.

的数据的完全独立的副本

以上是如何在 C# 中深度复制列表以避免共享引用?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板