概述
之前我们提到了集合,还提到了数组也是集合,要使用foreach语句来循环集合中的数据,当然也可以使用for循环,但foreach性能更好。
可以将数组理解为是一个容器,
如:学校里的每个班级就是一个数组,每个学生就是数组中的每一项。由于
数组是用下标值(也称为索引号或位置号)来存放的,下标值是从0开始的
。所以班里第1排第1个学生的下标值就是0,第2个学生下标值就是1,依次类推。
数组的定义
数组只能用来存储类型相同(强类型的)
的数据,如我们的班级,只能用来存放学生,不能存放别的。
数组在内存中是按定长连续来存储的。具有相同数据类型的数据元素的有序集合。
可以使用任何数据类型定义数组
,基本语法如下:
数据类型[] 数组名;
如:
//定义int类型的数组
int[] intArray1;
//定义double类型的数组
double[] doubleArray1;
//定义string类型的数组
string[] strArray1;
数组的定义比变量的定义只是多了一个[]符号。
数组的赋值和初始化
数组与变量是一样的,定义好的数组必须初始化后才可以使用。数组的初始化需要使用new关键字,因为数组是引用类型的。
数据类型[] 数组名=new 数据类型[长度];
如:
int[] intArray1;
intArray1 = new int[10];
也可以定义时初始化:
int[] intArray1= new int[10];
这里定义的intArray1数组初始化为长度为10的int类型的数组,长度10表示该数组只能存储10个整数。下标的最大值为9,也就是长度-1。
对于int类型的数组,初始化后数组中的每个值就是0。
double 是0.0 bool是false,string是null。
数组赋值
初始化好的数组就可以赋值了,赋值时要使用下标值。
如下:
int[] intArray1;
intArray1 = new int[10];
intArray1[0] = 10;
intArray1[1] = 11;
intArray1[2] = 12;
intArray1[3] = 13;
intArray1[4] = 14;
intArray1[5] = 15;
intArray1[6] = 16;
intArray1[7] = 17;
intArray1[8] = 18;
intArray1[9] = 19;
赋值时,数组的第1个值是使用下标值为0的位置。
数组取值
给数组赋过值之后,就可以获取其中的值了,我们在程序中使用数组,也是这个道理,先给数组赋值,然后经过处理后再获取。
要获取数组中的值,也是根据下标值进行的,下标值为0获取数组中第1个值,依次类推。 //获取数组中第3个值
int intA = intArray1[2];//12
Response.Write("intArray1数组中第3个值是:"+intA);
那要如何获取数组中的所有值呢?可以使用for循环:
for (int i = 0; i <= 9; i++)
{
Response.Write(intArray1[i] + ",");
}
由数组都是从下标值0开始的,所以在for循环中,循环变量i的初始值就是0。
还可以使用foreach循环,性能好:
foreach (int i in intArray1)
{
Response.Write(i + ",");
}
使用foreach循环数组时:
- 定义的循环变量i的数据类型必须与数组的类型一致。
- in是固定的。
- in后面是要循环的数组名。
注意:
数组在内存中是有固定大小的,并且是连续的。
数组存储相同类型的数据。
下标值从0开始,最大的下标值是数组长度-1。
- 我们这里定义的数组是一维,还有多维的数组。
数组是引用类型,需要使用new关键字初始化,初始化后数组中的每项都具有默认值。