︿
Top
顯示具有 yield 標籤的文章。 顯示所有文章
顯示具有 yield 標籤的文章。 顯示所有文章

2015年1月17日 星期六

C# yield

緣起

接續 前一篇 對 IEnumerator 及 IEnumerable 的探討, 及進一步 Study, 可以發現, .NET Framework 的集合物件都有實作 IEnumerable (非泛型) 或 IEnumerable<T> (泛型),
故若要產生一個物件集合, 供外部逐一取出元素, 直接利用現成的泛型類別 (ex: List<T>, Dictionary<T>) 產生之後, 回傳給呼叫端; 再由呼叫端用 foreach 逐一讀取, 這是很直覺的寫法.
但有沒有更方便的方式呢? 在某些情境下, 或許可以用 yield 這個 Syntactic Sugar.

完整程式範例, 筆者放在 GitHub, 請由此下載.