Iterator ทำการวนซ้ำแบบกำหนดเองบนคอลเลกชัน ใช้คำสั่งผลตอบแทนผลตอบแทนและส่งคืนแต่ละองค์ประกอบทีละรายการ ตัววนซ้ำจะจำตำแหน่งปัจจุบันและในการวนซ้ำครั้งถัดไป องค์ประกอบถัดไปจะถูกส่งคืน
ต่อไปนี้เป็นตัวอย่าง −
ตัวอย่าง
using System; using System.Collections.Generic; using System.Linq; namespace Demo { class Program { public static IEnumerable<string> display() { int[] arr = new int[] {99,45,76}; foreach (var val in arr) { yield return val.ToString(); } } public static void Main(string[] args) { IEnumerable<string> ele = display(); foreach (var element in ele) { Console.WriteLine(element); } } } }
ผลลัพธ์
99 45 76
ด้านบน เรามีวิธีการ iterator display() ที่ใช้คำสั่ง Yield เพื่อส่งคืนองค์ประกอบครั้งละหนึ่งรายการ -
public static IEnumerable<string> display() { int[] arr = new int[] {99,45,76}; foreach (var val in arr) { yield return val.ToString(); } }
ผลลัพธ์จะถูกเก็บไว้และแต่ละองค์ประกอบจะถูกทำซ้ำและพิมพ์ -
IEnumerable<string> ele = display(); foreach (var element in ele) { Console.WriteLine(element); }