Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk mengklonkan senarai generik secara berkesan di C#?

Bagaimana untuk mengklonkan senarai generik secara berkesan di C#?

DDD
Lepaskan: 2025-01-30 20:11:09
asal
526 orang telah melayarinya

How to Effectively Clone Generic Lists in C#?

klon senarai generik dalam C#

Dalam C#, senarai objek generik klon adalah satu cabaran, kerana kelas yang dibina -in

tidak secara langsung "klon ()". Walau bagaimanapun, terdapat beberapa cara untuk mencapai fungsi ini.

List<T> klon jenis nilai

Jika elemen senarai adalah jenis nilai, anda hanya boleh membuat senarai baru yang mengandungi elemen yang sama:

Gunakan jenis rujukan klon yang boleh diklonkan

<code class="language-csharp">List<MyValueType> newList = new List<MyValueType>(oldList);</code>
Salin selepas log masuk

Jika elemen adalah jenis rujukan, dan anda perlu disalin dengan mendalam (iaitu, senarai baru dan unsur -unsurnya tidak ada kaitan dengan senarai asal), anda boleh menggunakan antara muka :

"iclonable" dalam kod di atas digantikan dengan jenis elemen sebenar 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>
Salin selepas log masuk
Gunakan jenis rujukan klon pembina salinan

ICloneable

Jika jenis elemen anda tidak menyokong

tetapi mempunyai pembina salinan, anda boleh menggunakan kaedah berikut:

Kaedah ini menggunakan pembina salinan untuk membuat contoh baru setiap elemen.

ICloneable kaedah klon tersuai

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

oldList.ForEach(item => newList.Add(new MyReferenceType(item)));</code>
Salin selepas log masuk

untuk kemudahan, anda boleh merangkum mana -mana kaedah ini dalam kaedah pengklonan tersuai:

Kaedah ini menerima senarai generik dan mengembalikan senarai klon baru, memilih kaedah pengklonan yang sesuai mengikut jenis elemen.

Atas ialah kandungan terperinci Bagaimana untuk mengklonkan senarai generik secara berkesan di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan