列举 - Enumeration
迭代器是一个值序列(集合)上的一个只读且只向前移动的游标。迭代器要么实现了IEnumerator接口,要么实现了IEnumerator<T>接口。
从技术的角度看,如果一个对象有MoveNext方法以及Current属性,那么我们就可以将其看作一个迭代器。
我们可以使用foreach语句去迭代一个可列举对象。可迭代的对象其实就是一个序列的逻辑体现。可列举的对象不但自身就是一个游标,而且它还可以生成一个游标迭代自己。因此,可列举的对象有两个特性
- 实现IEnumerator接口,或实现IEnumerator<T>接口
- 有一个方法GetEnumerator,该方法返回一个迭代器
列举模式:
class Enumerator { public IteratorVariableType Current {get {...}} public bool MoveNext() {...} } class Enumerable { public Enumerator GetEnumerator() {...} }