Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mendapatkan Kiraan IEnumerable tanpa Lelaran?

Bagaimana untuk Mendapatkan Kiraan IEnumerable tanpa Lelaran?

Barbara Streisand
Lepaskan: 2024-12-26 06:50:13
asal
366 orang telah melayarinya

How to Get the Count of an IEnumerable without Iteration?

Mendapatkan Kiraan IEnumerable tanpa Lelaran

Dalam senario tertentu, pembangun mungkin perlu memastikan kiraan elemen dalam IEnumerable pengumpulan tanpa perlu mengulanginya. Ini timbul, sebagai contoh, apabila status kemajuan perlu dipaparkan dengan menunjukkan bilangan semasa dan jumlah item yang sedang diproses.

Walau bagaimanapun, IEnumerable tidak mempunyai kaedah yang wujud untuk mendapatkan semula kiraan tanpa lelaran. Ini adalah pilihan reka bentuk yang disengajakan, kerana IEnumerable menerima penilaian malas, hanya menjana elemen seperti yang diminta.

Penyelesaian: Menggunakan ICollection

Untuk memintas pengehadan IEnumerable, pembangun boleh memanfaatkan ICollection, yang mewarisi daripada IEnumerable dan termasuk harta Count. Dengan menghantar IEnumerable contoh kepada ICollection, sifat Count boleh diakses terus, memberikan bilangan elemen tanpa memerlukan lelaran.

Contoh:

Pertimbangkan kod berikut:

private IEnumerable<string> Tables
{
    get
    {
        yield return "Foo";
        yield return "Bar";
    }
}
Salin selepas log masuk

Untuk menentukan kiraan jadual tanpa lelaran, kod boleh diubah suai sebagai berikut:

var count = ((ICollection<string>)Tables).Count;
Salin selepas log masuk

Pelakon ke ICollection membolehkan akses terus kepada sifat Count, menghasilkan nilai 2, menunjukkan bilangan jadual dalam koleksi tanpa memerlukan lelaran.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kiraan IEnumerable tanpa Lelaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan