5.6 枚举
在foreach语句中使用枚举,可以迭代集合中的元素,且无需知道集合中的元素个数。图5-7显示了调用foreach方法的客户机和集合之间的关系。数组或集合执行带GetEumerator()方法的IEumerable接口。GetEumerator()方法返回一个执行IEumerable接口的枚举。接着,foreach语句就可以使用IEumerable接口迭代集合了。
|
| 图 5-7 |
提示:
GetEnumerator()方法用IEnumerable接口定义。foreach语句并不真的需要在集合类中执行这个接口。有一个名为GetEnumerator()的方法,返回实现了IEnumerator接口的对象就足够了。
5.6.1 IEnumerator接口
foreach语句使用IEnumerator接口的方法和属性,迭代集合中的所有元素。这个接口中的属性和方法如表5-4所示。
表 5-4
|
IEnumerator接口的方法和属性 |
说 明 |
|
MoveNext() |
MoveNext()方法移动到集合的下一个元素上,如果有这个元素,该方法就返回true。如果集合不再有更多的元素,该方法就返回false |
|
Current |
属性Current返回光标所在的元素 |
|
Reset() |
Reset()方法将光标重新定位于集合的开头。许多枚举会抛出NotSupportedException异常 |
| 回书目 上一节 下一节 |