集合的枚举和排序
原文 实现了IEnumerable接口才能遍历 先来看看IEnumerable接口的定义: public interface IEnumerable { IEnumerator GetEnumerator(); } 这个接口非常简单,主要就是一个方法GetEnumerator,用来返回一个IEnumerator对象。继续深入下去,IEnumerator接口的定义如下: public interface IEnumerator { bool MoveNext(); void Reset(); object Current{get;} } 上面的IEnumerator接口定义的属性和方法,只有一个目的,就是实现如何遍历。下面具体解释一下: Current属性:用来返回当前集合项的值 MoveNext方法:移动到集合对象的下一项,如果有下一项,就返回true。如果没有,就返回false。 Reset方法:重置然后可以重头访问集合 当用foreach循环来访问一个对象的时候,其实是默认的调用了对象里面的GetEnumerator()方法。而该方法就是由IEumerable接口给暴露出来的,所以如果想自定义一个能实现枚举功能的集合类就要先实现一个IEnumerable接口,然后实现里面的GetEnumerator方法。如下所示: namespace Test { class Program