首頁 > 後端開發 > C++ > 如何在 C# 中深度複製列表以避免共享引用?

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

Patricia Arquette
發布: 2025-01-11 18:26:46
原創
301 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板