Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Senarai kepada Senarai dalam .NET?

Bagaimana untuk Menukar Senarai kepada Senarai dalam .NET?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-17 00:56:13865semak imbas

How to Convert a List to a List in .NET?

Menukar Senarai kepada Senarai dalam .NET

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!

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