Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyalin Senarai dalam C# untuk Mengelakkan Rujukan Dikongsi?

Bagaimana untuk Menyalin Senarai dalam C# untuk Mengelakkan Rujukan Dikongsi?

Patricia Arquette
Patricia Arquetteasal
2025-01-11 18:26:46347semak imbas

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

Membuat Salinan Dalam Benar bagi Senarai C#

Cabarannya

Hanya menggunakan new List<Book>(books_1) untuk mengklon List<T> dalam C# tidak menghasilkan salinan bebas sepenuhnya. Perubahan pada senarai klon juga akan menjejaskan senarai asal kerana ia berkongsi rujukan kepada objek asas.

Penyelesaian: Pendekatan Salinan Dalam

Untuk mencapai salinan dalam yang sebenar, memastikan pengubahsuaian pada senarai klon tidak memberi kesan kepada yang asal, gunakan teknik berikut:

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

Kod ini berulang melalui setiap objek Book dalam senarai asal (books_1). Untuk setiap objek, ia mencipta objek baharu Book menggunakan pembina (tersirat di sini, dengan mengandaikan Book mempunyai pembina yang mengambil title sebagai hujah). Objek Book yang baru dibuat ini kemudian ditambahkan pada senarai baharu (books_2). Ini menjamin bahawa books_2 mengandungi salinan bebas sepenuhnya data daripada books_1.

Atas ialah kandungan terperinci Bagaimana untuk Menyalin Senarai dalam C# untuk Mengelakkan Rujukan Dikongsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn