Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menghantar Senarai Satu Jenis kepada Jenis Lain dengan Cekap dalam C#?

Bagaimanakah Saya Boleh Menghantar Senarai Satu Jenis kepada Jenis Lain dengan Cekap dalam C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-04 22:20:42563semak imbas

How Can I Efficiently Cast a List of One Type to Another in C#?

Menyenarai Senarai Dengan Lebih Ringkas

Dalam C#, menghantar senarai item dari satu jenis ke jenis lain boleh dicapai dengan menghantar secara eksplisit setiap item individu . Proses ini memakan masa dan boleh membuat kod berantakan. Adakah terdapat cara untuk menyelaraskan proses ini dengan menghantar keseluruhan senarai sekali gus?

Cadangan asal mencadangkan penggunaan penghantaran terus:

ListOfY = (List<Y>)ListOfX;

Walaupun ini kelihatan logik, ia tidak boleh dilakukan dengan C# seperti yang sedia ada. Walau bagaimanapun, terdapat penyelesaian yang lebih ringkas dan cekap:

List<Y> listOfY = listOfX.Cast<Y>().ToList();

Kaedah ini menggunakan Cast kaedah sambungan untuk menukar setiap item dalam senarai kepada jenis sasaran, Y. Kaedah ToList() kemudian dipanggil pada IEnumerable untuk mencipta Senarai baharu mengandungi item yang ditukar.

Nota Penting:

  • Sertakan menggunakan System.Linq; untuk mengakses Cast kaedah sambungan.
  • Kaedah ini menghantar item individu, bukan senarai itu sendiri.
  • Ia tidak menyokong pengendali penukaran tersuai.
  • Jika objek sumber mempunyai kaedah pengendali eksplisit ( rangka kerja 4.0), kaedah ini tidak akan berfungsi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar Senarai Satu Jenis kepada Jenis Lain dengan Cekap dalam C#?. 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