Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah kata kunci `hasil` memudahkan penciptaan iterator di C#?

Bagaimanakah kata kunci `hasil` memudahkan penciptaan iterator di C#?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-27 17:51:10706semak imbas

How Does the `yield` Keyword Simplify Iterator Creation in C#?

Memahami kata kunci C kata kunci yield dalam C# dengan ketara memudahkan penciptaan iterators. Iterator menyediakan urutan nilai tanpa memerlukan keseluruhan urutan untuk disimpan dalam memori sekaligus. "Penilaian malas" ini meningkatkan kecekapan, terutamanya apabila berurusan dengan dataset besar.

Kata kunci

mengubah gelung standard ke dalam kaedah iterator. Kaedah ini mengembalikan objek yang melaksanakan antara muka yield (di mana

adalah jenis elemen dalam urutan). Apabila pemanggil melangkah menggunakan gelung

, kaedah iterator melaksanakan, berhenti dan menyambung semula dengan setiap lelaran terima kasih kepada yield. IEnumerable<T> T Ini menghapuskan pembukuan manual yang biasanya dikaitkan dengan pelaksanaan iterator, menghasilkan kod yang lebih bersih, lebih banyak dikekalkan. foreach yield Pertimbangkan contoh ini:

Mengembalikan subset yang ditapis

. Pernyataan
<code class="language-csharp">public IEnumerable<object> FilteredList()
{
    foreach(object item in FullList)
    {
        if(IsItemInPartialList(item))
            yield return item;
    }
}</code>
berhenti melakukan pelaksanaan selepas setiap item yang sepadan ditemui, mengembalikan item itu kepada pemanggil. Iterator menyambung semula apabila item seterusnya diminta.

FilteredList FullList tidak ternilai dalam pelbagai situasi: menjana urutan dari pertanyaan, membaca data malas dari fail atau pangkalan data, dan mencipta iterators tersuai untuk struktur data yang unik. Pengenalannya dalam C# 2.0 sangat meningkatkan kemudahan dan kecekapan pembangunan iterator. yield return

Atas ialah kandungan terperinci Bagaimanakah kata kunci `hasil` memudahkan penciptaan iterator di 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