Iterator ทำการวนซ้ำแบบกำหนดเอง (custom iteration) บนคอลเลกชัน ใช้คำสั่ง yield return ส่งคืนสมาชิกทีละตัว 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
อธิบาย: เมธอด display() ใช้ yield return ส่งคืนทีละสมาชิก ผลลัพธ์ถูกเก็บและวนลูปพิมพ์แต่ละตัว