Array、ArrayList和List都是从IList派生出来的,它们都实现了IEnumerable接口。
总结
1、数组的容量固定,而ArrayList或List<T>的容量可根据需要自动扩充。
2、数组可有多个维度,而 ArrayList或 List< T> 始终只有一个维度。(可以创建数组列表或列表的列表)
3、特定类型的数组性能优于 ArrayList的性能(不包括Object,因为 ArrayList的元素是 Object ,在存储或检索值类型时通常发生装箱和取消装箱操作)。
4、 ArrayList 和 List<T>基本等效,如果List< T> 类的类型T是引用类型,则两个类的行为是完全相同的。如果T是值类型,需要考虑装箱和拆箱造成的性能损耗。List<T> 是类型安全。
array.length是二维数组中的主数组的长度,可以表示数组的行数
array[i].length是其中分数组的长度,即第i行的长度 此外 还有方法GetLength(),获取指定维度的的数量
若是二维数组,则有 array.GetLength(0);//获取第一维的长度,即行数 array.GetLength(1);//获取第二维的长度,即列数
四维数组 int[,] arr = new int[9, 8, 7, 6];
arr.Rank;//返回4 arr.GetLength(0);//返回9 arr.GetLength(1);//返回8 arr.GetLength(2);//返回7 arr.GetLength(3);//返回6 arr.GetUpperBound(0)+1;//返回9 arr.Length;//返回3024
容易混淆的还有size()方法,size()方法是针对集合而言,例如List,Set和Map都有size()方法,此外string类最初只有length(),引入STL之后,为了兼容也加入了size()方法,两者没有区别。
