数组是一个无序的元素序列,数组中的所有元素都具有相同的类型;一个数组中的元素存储在一个连续性的内存块中,并可使用整数索引来访问,数组是引用类型;
声明数组:
创建数组实例:
初始化数组:
创建隐式类型的数组:
访问数组元素:数组索引是基于0的,一个数组的初始元素位于索引0,以此类推;
int l;
l=pins[2];
l=123;
pins[1]=l;
数组元素的访问都要进行边界检查,如果使用小于0或者大于数组长度的一个整数索引,编译器会抛出一个IndexOutOfRangeException异常,如下:
遍历数组:所有数字都从System.Array类继承属性和方法,Length属性可以知道一个数组中包含多少个元素;
遍历数组可以使用FOR或FOREACH,但是在一下情况的时候只能使用FRO:
1.foreach总是遍历整个数组,如果只想遍历数组的一部分或者想中途跳过指定的元素,那么使用for语句将更容易;
2.foreach语句总是从索引0遍历到索引Length-1,如果要向相反的方向遍历,那么使用for更加简单;
3.如果循环主体需要知道元素的索引,而非知识元素的值,则必须使用for语句;
4.如果需要修改数组元素,则必须使用for语句,这是由于foreach语句的循环变量是数组的每个元素的只读副本。
遍历数组时也可以将循环变量声明为var,让C#编译器根据数组元素的类型来推断变量的类型。
复制数组:
多维数组:使用超过三维的数组时要小心,数组可能耗用大量内存;
数组的维数是没有限制的,可以是一维、二维、三维甚至更多,相应的访问相应维数数组的元素时也都必须指定相应位数的索引;
二维数组:int[,] lyy=new int[5,6];
三维数组:int[,,] lyy=new int[1,2,3];
集合类:
位于System.Collections命名空间及其子命名空间中,数组和集合有一个根本性的差异,数组能容纳值类型,基本集合类则将它们的元素作为对象类型来接受、容纳和返回,也就是说集合类的元素类型是object;
ArrayList集合类: