数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。
一维数组声明语法如下:
datatype[] arrayName;
其中,datatype为数据类型,arrayName为数组名。
例如下面几个例子:
int[] intArray;//创建存储int型数据的数组
double[] doubleArray;//创建存储double型数据的数组
数组初始化有两种方式,一种是声明时直接对其进行赋值,例如:
int[] intArray = { 0, 1, 2, 3 }; //声明长度为4的数组,其中数据依次为1,2,3,4
由于数组是一个引用类型,所以更常见的方法是使用关键字new来创建数组的实例。语法如下:
datatype[] arrayName = new datatype[arrayLength];
其中arrayLength指数组长度,此时则创建了一个数据类型为datatype、长度为arrayLength的名为arrayName的数组,其中所有数据初始值为0。
上述两种方式也可以混合使用:
int[] a = new int[4]{ 1, 2, 3, 4 };
//创建长度为4的数组a,其中数据依次为1、2、3、4
多维数组声明只需要在[ ]内添加逗号','划分维度,并在创建实例时声明数组各个维度长度。例如:
int[,] a = new int[2,3];//声明了2行3列的二维数组
初始化数据同样可以使用花括号,此时通过花括号嵌套区分维度。
int[,] a = new int[2,3]{ {1, 2, 3}, {4, 5, 6} };
上面的多维数组每行大小相同,又称为矩形数组。数组的元素同样可以为数组,此时每行大小可以不相同,称之为锯齿数组。声明数组的数组,需要使用多个[ ]。
int[][] a = new int[2][]; //a长度为2
a[0] = new int[3]; //a第一行长度为3
a[1] = new int[4]; //a第二行长度为4
初始化同样可以借助于花括号:
int[][] a = new int[2][]{ new int[3]{1, 2, 3}, new int[2]{4, 5} };
//使用花括号初始化数组
访问一维数组,直接在[ ]中填写数据索引即可,例如访问数组a中第4个元素,使用a[4]即可。需要注意,绝大多数计算机语言,包括C#,数组索引都是从0开始计算。
访问多维数组,则在[ ]中通过逗号分隔各个维度索引;访问数组的数组,则各个维度索引依次通过 [ ]分隔。例如访问数组a中第2行第3列元素,多维数组使用a[2,3],而数组的数组使用a[2][3]。
数组通过一些函数可以与字符串相互转化。
string ss="abcdefg";
char[] cc=ss.ToCharArray(); //字符串转化为char[]型数组
string s1=new string(cc); //char[]型数组转化为字符串
byte[] bb=Encoding.UTF8.GetBytes(ss);
string s2=Encoding.UTF8.GetString(bb); //字符串与byte[]型数组相互转化