Mekanisme warisan membolehkan kita membuat kelas baru berdasarkan kelas yang sedia ada, tetapi konsep yang sama tidak digunakan secara langsung untuk senarai generik. Khususnya, kami tidak dapat mengisytiharkan
dan memberikan senarai jenis yang diperoleh, walaupun kelas yang diperolehi mewarisi kelas berasaskan diri. Sila pertimbangkan contoh berikut:
List<基类>
interface A { } class B : A { } class C : B { } class Test { static void Main(string[] args) { A a = new C(); // 正确 List<A> listOfA = new List<C>(); // 编译错误 } }
<换> Kaedah penukaran
Kaedah menukar <换> ke adalah untuk melancarkan unsur -unsur senarai dan secara manual menukarnya secara manual. Ini boleh dilaksanakan dengan menggunakan
kaedah:
List<派生类>
List<基类>
di sini, setiap elemen dalam senarai Ateratory C menukarnya untuk menaip A dan tambahkannya ke senarai ListOfa baru. ConvertAll
List<A> listOfA = new List<C>().ConvertAll(x => (A)x);
atau, kita boleh menggunakan LINQ untuk melaksanakan penukaran:
di sini, Tukar setiap elemen dalam senarai untuk menaip A, dan
mencipta senarai baru yang mengandungi elemen penukaran.Atas ialah kandungan terperinci Bagaimana cara menukar senarai kelas yang diperolehi ke senarai kelas asas di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!