Rumah >pembangunan bahagian belakang >C++ >Bagaimana dengan cekap menduplikasi senarai generik dalam C#?

Bagaimana dengan cekap menduplikasi senarai generik dalam C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-30 20:05:12553semak imbas

How to Efficiently Duplicate a Generic List in C#?

menduplikasi senarai generik yang cekap dalam C#

Membuat salinan senarai generik adalah tugas yang kerap dalam C#, walaupun bahasa tidak mempunyai kaedah langsung

. Artikel ini meneroka beberapa strategi yang berkesan untuk menduplikasi senarai. list.Clone()

Senarai jenis nilai Duplikasi:

Untuk senarai yang mengandungi jenis nilai, penyalinan adalah mudah:

<code class="language-csharp">List<YourType> newList = new List<YourType>(oldList);</code>
Ini mewujudkan senarai baru dengan unsur -unsur yang sama dengan yang asal. Ambil perhatian bahawa ini melakukan

salinan cetek untuk jenis nilai.

Senarai Jenis Rujukan Penyalinan Deep:

Dengan jenis rujukan, salinan yang mendalam diperlukan untuk mengelakkan rujukan objek bersama. Jika elemen anda dilaksanakan

: ICloneable

<code class="language-csharp">List<ICloneable> oldList = new List<ICloneable>();
List<ICloneable> newList = new List<ICloneable>(oldList.Count);

oldList.ForEach(item => newList.Add((ICloneable)item.Clone()));</code>
ini melangkah dan klon setiap elemen secara individu.

memanfaatkan pembangun salinan:

jika elemen anda mempunyai salinan pembina tetapi tidak melaksanakan

: ICloneable

<code class="language-csharp">List<YourType> oldList = new List<YourType>();
List<YourType> newList = new List<YourType>(oldList.Count);

oldList.ForEach(item => newList.Add(new YourType(item)));</code>
Ini menggunakan pembina salinan untuk setiap elemen.

Kaedah pengklonan adat: Untuk senario yang lebih kompleks, pertimbangkan kaedah salinan tersuai (mis.,

) atau kaedah kilang untuk menyediakan kawalan halus ke atas proses pengklonan.

YourType.CopyFrom()

enkapsulasi untuk kebolehgunaan semula:

Untuk organisasi kod yang lebih baik dan kebolehgunaan semula, bungkus pendekatan ini ke dalam kaedah lanjutan atau fungsi penolong mandiri.

Atas ialah kandungan terperinci Bagaimana dengan cekap menduplikasi senarai generik dalam C#?. 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