C#数组
假如我们要存储 100 名学生的分数,若使用普通变量的话可能需要定义 100 整型变量,例如 number0、number1、...、number99。而如果使用数组就简单的多了,只需要定义一个长度为 100 的整型数组,例如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99](
[ ]
中的数字就是数组的索引)就可以访问数组中的每个元素。所有数组都是由连续的内存位置组成,最低的内存地址对应第一个元素,最高的内存地址对应最后一个元素,如下图所示:
图:数组
1、声明数组
在 C# 中声明一个数组的语法格式如下:data_type[] array_name;
其中,data_type 用来指定数组中元素的类型;[ ]
用来指定数组的维度;array_name 为数组的名称。示例代码如下:
int[] array1 // 声明一个整型数组
double[] array2 // 声明一个浮点型数组
2、初始化数组
仅仅是声明数组还不够,数组只有经过初始化后才可以为其中的每个元素赋值。因为数组是引用类型的,所以您需要使用 new 关键字来对数组进行初始化,例如:
int[] array1 // 声明一个整型数组
array1 = new int[10] // 初始化数组 array1
double[] array2 // 声明一个浮点型数组
array2 = new double[5] // 初始化数组 array2
int[] array1 = new int[10] // 初始化一个长度为 10 的整型数组
double[] array2 = new double[5] // 初始化一个长度为 5 的浮点型数组
提示:初始化数组的过程中,new int[10] 中[ ]
里面的数字代表数组的长度,也就是数组中最多可以存放多少个元素,我们可以根据需要来设定数组的长度。
3、为数组元素赋值
我们可以使用数组的索引来为数组中的各个元素赋值,如下所示:
int[] arr = new int[10];
arr[0] = 10;
arr[1] = 11;
{ }
中,并将每个元素使用,
分隔开即可,如下所示:
double[] arr1 = {96.5, 98.0, 99.5, 90.0};
int[] arr2 = {1, 2, 3, 4, 5, 6, 7, 8, 9};
double[] arr1 = new double[4]{96.5, 98.0, 99.5, 90.0};
int[] arr2 = new int[10]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
double[] arr1 = new double[]{96.5, 98.0, 99.5, 90.0};
int[] arr2 = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] arr1 = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] arr2 = arr1;
提示:当我们创建一个数组时,C# 的编译器会根据数组类型隐式的为数组中的每个元素初始化一个默认值。例如 int 类型的数组中所有元素都会被初始化为 0。
4、访问数组中的元素
我们可以通过数组的索引(也可称为下标)来访问数组中的指定元素,只需要在数组名的后面加上一个方括号[ ]
,并在其中填写对应的数组索引即可,如下所示:
int[] arr = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int a = arr[0];
using System; namespace c.biancheng.net { class Demo { static void Main(string[] args){ int[] arr = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; for(int i = 0; i < 10; i++){ Console.WriteLine("arr[{0}] = {1}", i, arr[i]); } Console.ReadLine(); } } }运行结果如下:
arr[0] = 0
arr[1] = 1
arr[2] = 2
arr[3] = 3
arr[4] = 4
arr[5] = 5
arr[6] = 6
arr[7] = 7
arr[8] = 8
arr[9] = 9
5、使用 foreach 遍历数组
前面的示例中我们使用了 for 循环来访问数组中的每个元素,另外还可以使用 foreach 循环来遍历数组中的元素,示例代码如下:using System; namespace c.biancheng.net { class Demo { static void Main(string[] args){ int[] arr = new int[]{100, 101, 102, 103, 104, 105, 106, 107, 108, 109}; int index = 0; foreach(int i in arr){ Console.WriteLine("arr[{0}] = {1}", index, i); index++; } Console.ReadLine(); } } }运行结果如下:
arr[0] = 100
arr[1] = 101
arr[2] = 102
arr[3] = 103
arr[4] = 104
arr[5] = 105
arr[6] = 106
arr[7] = 107
arr[8] = 108
arr[9] = 109