// Iterator yordamida o'z navbatida qaytarilgan qiymatlarning //dinamik qurilishiga misol. using System; using System.Collections; class MyClass { char ch = 'A'; // Ushbu iterator katta harflar bilan yozilgan //ingliz alifbosidagi harflarni qaytaradi. public IEnumerator GetEnumerator() { for(int i=0; i < 26; i++) yield return (char) (ch + i); } } class ItrDemo2 { static void Main() { MyClass mc = new MyClassO; foreach(char ch in mc) Console.Write(ch + " ") ; Console.WriteLine(); } } Bu dasturning natijasi quyidagicha. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
2. Iteratorning uzilishi.
Iteratorning erta uzilishi uchun yieldoperatorining quyidagi shakli xizmat qiladi. yield break; Ushbu operator amalga oshirilganda, iterator to'plamning oxiriga yetganligini bildiradi. Aslida, iteratorning o'zi to'xtaydi. Quyidagi dastur ingliz alifbosining dastlabki o'nta harfini ko'rsatish uchun o'zgartirilgan avvalgi dasturning versiyasidir. // Iteratorning uzilishi misoli. using System; using System.Collections; class MyClass { char ch = 'A'; //Ushbu iterator ingliz alifbosining birinchi 10 harflarini qaytaradi. public IEnumerator GetEnumerator() { for(int i=0; i < 26; i++) { if(i == 10) yield break; // iteratorni muddatidan oldin to'xtatish