在使用迭代器时yield return,返回IEnumerator和IEnumerable?之间有什么区别?
IEnumerable并且IEnumerator是两件不同的事情.
IEnumerable<T> 是一个可以迭代的序列.
IEnumerator<T>是一个IEnumerable<T>在序列上迭代一次的对象.
通常,返回的唯一地方IEnumerator<T>是GetEnumerator()方法.
yield return两种类型的行为方式相同,只是返回的迭代器方法IEnumerable<T>可以执行多次(每次枚举序列时).
有关其工作原理的更多信息,请参阅Jon Skeet的文章.
| 归档时间: |
|
| 查看次数: |
1000 次 |
| 最近记录: |