ArrayList是使用最频繁的一个集合类。其实现原理可以用如下方式来解释:
首先,ArrayList实现了IEnumberable接口以及IEnumberator接口。IEnumberable接口只有一个方法:GetNumberator(),用来返回可循环访问集合的枚举数,即返回类型IEnumerator。
IEnumberator有三个方法:
(1)方法MoveNext()用来移动到集合的下一个元素;
(2)方法current() 获取集合中的当前元素。
(3)方法Reset()将集合设置为初始位置,该位置位于集合第一个元素之前。
可以说,IEnumberator与IEnumberable通过后者的GetEnumbertor()方法建立了连接。其返回IEnumberator对象。
让我们来看下面的一段代码,进一步说明和验证:
static void Main(string[] args)
{
ArrayList list=new ArrayList();
list.Add("a");
list.Add("b");
IEnumerator num = list.GetEnumerator();
while (num.MoveNext())//移动到下一个元素
{
Console.WriteLine(num.Current.ToString());//输出当前元素
}
Console.ReadKey();
}