Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Senarai kepada Senarai dalam .NET?
Menukar Senarai
Panduan ini menerangkan cara menukar senarai Client
objek (List<Client>
) kepada senarai antara muka IDic
yang sepadan (List<IDic>
).
Mengapa Hantaran Terus Gagal
Penghantaran terus daripada jenis terbitan (seperti Client
) kepada jenis asas (IDic
) dibenarkan dalam .NET. Walau bagaimanapun, sebaliknya adalah tidak mudah kerana had kovarians. Sekatan ini menghalang operasi yang tidak selamat di mana senarai jenis asas secara tidak dijangka boleh mengandungi unsur jenis terbitan, memelihara keselamatan jenis.
Kaedah Penukaran Berkesan
Dua kaedah yang boleh dipercayai mencapai penukaran yang diingini:
1. Memanfaatkan IEnumerable<IDic>
( .NET 4 dan lebih baru)
.NET 4 dan versi yang lebih baru menyokong kovarians dengan IEnumerable<T>
. Ini membolehkan penukaran daripada List<Client>
kepada IEnumerable<IDic>
, membenarkan lelaran ke atas Client
objek sebagai IDic
tika.
2. Membina Senarai Baharu
Untuk mencipta List<IDic>
, anda mesti membina senarai baharu secara eksplisit dan mengisinya dengan rujukan antara muka. .NET 4 menawarkan kaedah ToList<T>()
untuk ini. .NET 3.5 menggunakan Cast<T>()
diikuti dengan ToList()
.
Nota Penting tentang Kebebasan Data
Kedua-dua teknik menjana senarai berasingan, mengekalkan keselamatan jenis. Yang penting, pengubahsuaian kepada List<Client>
asal tidak akan mengemas kini List<IDic>
baharu secara automatik. Hanya perubahan yang dibuat secara langsung pada Client
objek itu sendiri akan kelihatan dalam kedua-dua senarai.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Senarai kepada Senarai dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!