迭代器是开发人员能够在类和结构中遍历各自的数据结构的一种功能,这种功能可以用两种技术来实现,即foreach语句和迭代器(Iterator)。
foreach:
如果要对一个类使用foreach语句,必须确保这个类提供了foreach循环所必须的GetEnumerator、MoveNext、Reset和Current成员。这些成员分别在IEnumerable和IEnumerator接口中进行定义。所以,只要实现了这两个接口,就可以对齐使用foreach语句。
类并不是必须继承IEnumerator和IEnumerable接口才能与foreach兼容,只要类有所需要的GetEnumerator、MoveNext、Reset和Current成员,便可以与foreach一起使用。
迭代器:
C#提供了关键字yield来实现迭代器,只要类中提供迭代器,即可遍历类中的数据结构。