在 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中文網其他相關文章!