foreach极大地简化了需要编写的代码,但它只能在特定情况下使用——只能使用foreach遍历可枚举集合。
什么是可枚举集合?简单地说就是实现了System.Collections.IEnumerable接口的集合。
IEnumerable接口包含一个名为GetEnumerator的方法:
IEnumerator GetEnumerator();
GetEnumerator方法应该返回实现了System.Collections.IEnumerable接口的枚举器对象,枚举器对象用于遍历(枚举)集合中的元素。
要自己创建可枚举集合类,就必须实现IEnumerable接口。还要提供IEnumerator接口的一个实现,以便由集合类的GetEnumerator方法返回。