数组是做什么的?
如果需要使用同一个类型的多个对象,就可以使用数组。数组是一种数据结构,它可以包含同一类型的多个元素
如何声明数组?
在声明数组时,应先定义数组中元素的类型, 其后是一对空方括号和一个变量名。
int[] intArray;
数组如何初始化?
声明数组后,就必须为数组分配内存, 用以保存数组的所有元素。 数组是引用类型,所以必须给它分配堆上的内存。 为此,应使用 new 运算符, 指定数组中元素的类型和数量来初始化数组的变量。
int[] intArray = new int[4];
在声明和初始化数组后,变量 intArray 就引用了4个整型值, 他们位于托管堆上如下图:
注意: 在指定了数组的大小后,如果不复制数组中的所有元素,就不能重新设置数组的大小。如果事先不知道数组中应包含多少个元素,可以使用集合。(关于集合后面会将到)
数组还可以在初始化时指定每个元素的值:
// 1
int[] intArray = new int[4] {1, 3, 5, 7};
// 2
int[] intArray = new int[] {1, 3, 5, 7};
// 3
int[] intArray = {1, 3, 5, 7};
如何访问数组元素?
在声明和初始化数组以后,就可以使用索引器访问其中的元素了。 数组只支持有整型参数的索引器。
通过索引器传递元素编号, 就可以访问数组了。 索引器总是以 0 开头, 表示第一个元素。 可以传递给索引器的最大值是元素个数减1, 因为索引是从 0 开始的。 下面看个栗子:
int[] intArray = new int[] {3, 5, 7, 9};
int v1 = intArray[0]; // v1 = 3
int v2 = intArray[2]; // v2 = 7
intArray[3] = 99; // 修改数组中索引为3的元素 现在数组的元素是这样的 {3, 5, 7, 99}
注意:如果使用错误的索引值 (大于数组的长度或小于 0) 就会抛出 IndexOutOfRangeException 类型的异常。
如果不知道数组中的元素个数,可以在 for语句中使用 Length 属性:
for(int i = 0; i < intArray.Length; i++)
{
Console.WriteLine( intArray[i] );
}
除了使用 for 语句迭代数组中的元素外,还可以使用foreach语句:
foreach(int val in intArray)
{
Console.WriteLine( val );
}