綜合提升生產力與程式碼簡潔度,本系列逐一深入。
string[] cities = {"New York","Paris","London"};
foreach (string city in cities) Console.WriteLine(city);
自訂集合需實作:
public interface IEnumerable { IEnumerator GetEnumerator(); }
public interface IEnumerator { object Current {get;} bool MoveNext(); void Reset(); }
通常以巢狀類別實作 `IEnumerator`,封裝迭代狀態(索引、版本號),存取外部類別私有成員。
迭代器模式:統一遍歷介面,隱藏底層資料結構(陣列、鏈表、樹、資料庫游標),客戶端邏輯不變。圖示:

C# 2.0 `yield return` 將此模式內建語言層級,大幅降低實作門檻。