IEnumerable、IEnumerator、List、ArrayList、[]数组各各的区别

摘自:csdn-vrhero

IEnumerable表明对象是不确定类型的集合并支持简单迭代,是不是定长根本不关心...
IEnumerable<T>表明对象是指定类型的集合并支持简单迭代,是不是定长根本不关心...
ICollection是IEnumerable接口的派生接口,表明对象是不确定类型的集合并支持简单迭代,而且定义了集合的大小、枚举数和同步方法,这里的大小是指可以是定长的也可以是不定长的...
IList是ICollection和IEnumerable的派生接口,表明对象是不确定类型的集合并支持简单迭代,而且定义了集合的大小、枚举数和同步方法,还可以按照索引单独访问,这里的大小是指可以是定长的也可以是不定长的...
ArrayList类是IList接口的实现,表明对象是不确定类型的大小可按需动态增加的数组...
List<T>类是IList<T>接口的实现,是ArrayList类的泛型等效类并增强了功能,表明对象是可通过索引访问的对象的强类型列表...在.NET 2.0以上可以完全代替ArrayList,就是说ArrayList已经被淘汰...
而动态数组和链表在本质上是不同的...在.NET 2.0以上有双向链表LinkedList<T>泛型类,它也是继承自ICollection<T>,IEnumerable<T>,ICollection,IEnumerable...

你可能感兴趣的:(ArrayList)