C#中的Array数组类(附带实例)
C# 中的数组是由 System.Array 类派生而来的引用对象,其关系图如下图所示:

图 1 数组与Array类的关系图
可以使用 Array 类中的各种属性或者方法对数组进行各种操作。例如可以使用 Array 类的 Length 属性获取数组元素的长度,可以使用 Rank 属性获取数组的维数。
Array 类的常用方法及说明如下表所示:
【实例】使用数组编写程序打印杨辉三角。
使用数组打印杨辉三角,杨辉三角是一个由数字排列成的三角形,其本质特征是它的两条边都是由数字 1 组成的,其余的数则等于它上方的两个数之和,代码如下:

图 1 数组与Array类的关系图
可以使用 Array 类中的各种属性或者方法对数组进行各种操作。例如可以使用 Array 类的 Length 属性获取数组元素的长度,可以使用 Rank 属性获取数组的维数。
Array 类的常用方法及说明如下表所示:
方法 | 说明 |
---|---|
Copy | 将数组中的指定元素复制到另一个 Array 中 |
CopyTo | 从指定的目标数组索引处开始,将当前一维数组中的所有元素复制到另一个一维数组中 |
Exists | 判断数组中是否包含指定的元素 |
GetLength | 获取 Array 的指定维中的元素个数 |
GetLowerBound | 获取 Array 中指定维度的下限 |
GetUpperBound | 获取 Array 中指定维度的上限 |
GetValue | 获取 Array 中指定位置的值 |
Reverse | 反转一维 Array 中元素的顺序 |
SetValue | 设置 Array 中指定位置的元素 |
Sort | 对一维 Array 数组元素进行排序 |
【实例】使用数组编写程序打印杨辉三角。
使用数组打印杨辉三角,杨辉三角是一个由数字排列成的三角形,其本质特征是它的两条边都是由数字 1 组成的,其余的数则等于它上方的两个数之和,代码如下:
static void Main(string[] args) { int[][] Array_int = new int[10][]; // 定义一个10行的二维数组 // 向数组中记录杨辉三角的值 for (int i = 0; i < Array_int.Length; i++) // 遍历行数 { Array_int[i] = new int[i + 1]; // 定义二维数组的列数 for (int j = 0; j < Array_int[i].Length; j++) // 遍历二维数组的列数 { if (i <= 1) // 如果是数组的前两行 { Array_int[i][j] = 1; // 将其设置为1 continue; } else { if (j == 0 || j == Array_int[i].Length - 1) // 如果是行首或行尾 Array_int[i][j] = 1; // 将其设置为1 else Array_int[i][j] = Array_int[i - 1][j - 1] + Array_int[i - 1][j]; // 根据杨辉算法进行计算 } } } for (int i = 0; i <= Array_int.Length - 1; i++) // 输出杨辉三角 { // 循环控制每行前面打印的空格数 for (int k = 0; k <= Array_int.Length - i; k++) { Console.Write(" "); // 输出空格 } // 循环控制每行打印的数据 for (int j = 0; j < Array_int[i].Length; j++) { Console.Write("{0} ", Array_int[i][j]); } Console.WriteLine(); // 换行 } Console.ReadLine(); }程序运行结果为:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1在第 17 行代码中,j==0 判断是不是行首,j==Array_int[i].Length-1 判断是不是行尾,因为在杨辉三角中,每一行的行首和行尾都是 1,所以这里进行了特殊处理。