1、首先,在C#中遍历一个List列表时,可以使用foreach循环,也可以如图先GetEnumerator,在调用MoveNext。
2、运行效果如图所示。第一个元素是在第一次调用MoveNext之后读取。
3、如果有两个列表,则可以使用while循环,每次调用两个Enumerator的MoveNext都成功时才执行循环体。
4、执行效果如图所示,虽然b列表有4个元素,但是a列表只有3个,所以循环只执行了三次。
5、在List列表上调用GetEnumerator不带参数,但如果是ArrayList,可以带参数,控制Enumerator访问元素的范围。
6、GetEnumerator(0, 3)表示ArrayList的0,1,2号元素。如图所示。
7、GetEnumerator函数是由IEnumerable接口指定的,List和ArrayList都有该接口。