C# 第四篇 数组定义
假设如果有100个学生,需要定义100个变量,那么这个时候就需要数组的出现。数组是具有相同类型的一组数据的集合。
一、一维数组
一维数组实质是一组相同类型数据的线性集合。数组作为对象允许使用new关键字对其进行内存分配。
数组元素类型[] 数组名字;
在声明数组后,还不能访问它的任何元素,声明数组只是给出了数组的名称和数据类型,要想使用数组还需要分配内存空间。
数组名字 = new 数组元素类型[数组元素的个数] arr = new int[5]; //赋值 arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; arr[4] = 5; //也可以这么赋值 int[] arr = new int[5]{1,2,3,4,5};
在使用new关键字为数组分配内存时,整形数组中各元素的初始值为0.
二、二维数组
二维数组是一种特殊的多维数组,声明时用多个“[]”或者在中括号中加逗号表明是多维数组。如有N个中括号或者N个逗号即为多维数组。
定义二维数组
int[][] arr = new int[][]; //或者这种 int[,] arr = new int[,]; //赋值 int[,] arr = new int[2,2]{{12,0},{45,10}};
对于二维数组索引序列arr[a][b] , a决定是第几行,b决定是第几列,数组索引从0开始;
三、不规则数组的定义
C#中支持定义不规则的数组,有时二维数组的不同行的元素个数完全不同
int[][] arr = new int[3][]; //指定行数不指定列数的二维数组 a[0] = new int[5]; //为第一行分配5个元素 a[1] = new int[3]; //为第一行分配3个元素 a[2] = new int[4]; //为第一行分配4个元素
四、数组与Array类
C#中的数组是由Array类派生的引用对象。可以使用Array类中的各种属性或方法对数组进行各种操作。
方法 | 作用 |
Copy | 将数组中的指定元素复制到另一个Array中 |
CopyTo | 从指定的目标数组索引处开始,将当前一维数组中的所有元素复制到另一个一维数组中 |
Exists | 判断数组中是否包含指定的元素 |
GetLength | 获取Array中指定维中的元素数 |
GetLowerBound | 获取Array中指定维度的下限 |
GetUpperBound | 获取Array中指定维度的上限 |
GetValue | 获取Array中指定位置的值 |
Reverse | 反转一维Array数组中的元素的顺序 |
SetValue | 设置Array中指定位置的元素 |
Sort | 对一维Array数组中的元素进行排序 |
五、数组的操作
5.1 使用foreach语句遍历数组
foreach语句用来遍历集合中的每个元素。
foreach(类型 迭代变量名 in 集合) { 语句 }
5.2 对数组进行排序
C#提供了用于对数组进行排序的方法:Array.Sort方法和Array.Reverse方法。
Array.Sort方法:仅对一维数组进行排序,不能是空的数组;
Array.Sort(数组名); //要排序的数组,排序范围的起始索引,排序范围的个数 Array.Sort(数组名,int index,int length);
Array.Reverse方法: 用于反转一维Array数组中的元素顺序;
Array.Reverse(数组名); //要反转的数组,反转部分的起始索引,反转索引的个数 Array.Reverse(数组名,int index,int length)