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