Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Item daripada Koleksi Kovarian dengan Pengindeksan?

Bagaimanakah Saya Boleh Mendapatkan Item daripada Koleksi Kovarian dengan Pengindeksan?

DDD
DDDasal
2025-01-02 15:32:40968semak imbas

How Can I Get Items from a Covariant Collection with Indexing?

Mendapatkan semula Item daripada Koleksi Kovarian dan Berindeks

Koleksi kovarian membolehkan mendapatkan semula item melalui upcasting, tetapi selalunya kekurangan sokongan indeks. IEnumerable ialah contoh koleksi kovarian tanpa pengindeksan. Walau bagaimanapun, mungkin terdapat keperluan untuk koleksi kovarian yang menawarkan pengindeksan dan upcasting.

Isu timbul dengan kelas Senarai, yang melaksanakan ICollection dan mempunyai kaedah Tambah. Menaikkan Senarai kepada IList boleh membawa kepada penambahan haiwan bukan anjing, melanggar kekangan jenis koleksi asal.

Jika koleksi kovarian dengan carian indeks diingini, alternatif boleh dipertimbangkan:

  • .NET 4.5 dan seterusnya: IReadOnlyList dan IReadOnlyCollection menyediakan keupayaan pengindeksan kovarian. Senaraikan dan ReadOnlyCollection laksanakan kedua-dua antara muka.
  • Pembungkus Kovarian Tersuai: Kaedah sambungan seperti AsCovariant boleh dibuat untuk membalut IList dan dedahkan hanya IEnumerable dan dapatkan pengindeks, mencipta pembungkus kovarian dengan sokongan pengindeksan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Item daripada Koleksi Kovarian dengan Pengindeksan?. 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