目录
1.迭代器是什么?
迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式。
迭代器模式提供一个方法顺序访问一个聚合对象中的各个元素,而不暴露其内部的标识。在表现效果上看,是可以在容器对象(例如链表或数组)上遍历访问的接口,设计人员无需关心容器对象的内存分配的实现细节,可以用foreach遍历的类,都是实现了迭代器的。
2.标准迭代器的实现方法
关键接口:IEnumerator,IEnumerable.
命名空间:using System.Collections;
可以通过同时继承IEnumerable和IEnumerator实现其中的方法。
光标就是下标
public bool MoveNext()
{
//移动 光标
++position;
//是否溢出
return position<list.Length;
}
3.用yield return语法糖实现迭代器
简化的方法
yield return是C#提供给我们的语法糖,所谓语法糖也称为糖衣语法。主要作用就是将复杂逻辑简单化,可以增加程序的可读性。从而减少程序代码出错的机会。
关键接口:IEnumerable
命名空间:using System.Collections;
让想要通过foreach遍历的自定义类实现接口中的方法GetEnumerator即可。
或者yield return list[0];
yield return list[1];
yield return list[3];
......
这样写也是可行的。
4.用yield return语法糖为泛型类型实现迭代器