Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyalin Senarai dalam C# untuk Mengelakkan Rujukan Dikongsi?
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.
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!