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
594 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

List<MyValueType> newList = new List<MyValueType>(oldList);
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.

List<ICloneable> oldList = new List<ICloneable>();
List<ICloneable> newList = new List<ICloneable>(oldList.Count);

oldList.ForEach(item => newList.Add((ICloneable)item.Clone()));
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

List<MyReferenceType> oldList = new List<MyReferenceType>();
List<MyReferenceType> newList = new List<MyReferenceType>(oldList.Count);

oldList.ForEach(item => newList.Add(new MyReferenceType(item)));
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!

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