C#二维数组与多维数组
C# 中同样支持多维数组(也可称为矩形数组),它可以是二维的,也可以是三维的,多维数组中的数据以类似表格(行、列)的形式存储,因此也被称为矩阵。
要创建多维数组,我们需要在声明数组的方括号内添加逗号,例如:
int[,] arr=new int[3,3]; // 声明一个二维数组 int[,,] arr=new int[3,3,3]; // 声明一个三维数组
1、二维数组
多维数组中最简单的形式是二维数组,我们可以将二维数组看作是一个表格,这个表格中具有相应的行数和列数,下图中展示了一个包含 3 行 4 列的二维数组。
我们可以使用arr[i, j]的形式来访问二维数组中的每个元素,其中 arr 为数组的名称,而 i 和 j 则是数组元素的索引,类似于表格中的行和列。
2、初始化二维数组
二维数组的初始化与一维数组类似,例如我们要定义一个 3 行 4 列的整型数组,可以使用以下几种方式:
// 第一种方式 int[,] arr = new int[3,4]{ {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; // 第二种方式 int[,] arr = new int[,]{ {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; // 第三种方式 int[,] arr = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} };
3、访问二维数组种的元素
二维数组中的元素同样可以通过索引(行索引和列索引)来访问的,例如:
int[,] arr = new int[3,4]{ {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; int a = arr[1, 0];
上例中arr[1, 0]代表了数组 arr 中第二行中的第一个元素。
【示例】定义一个二维数组并遍历数组中的每个元素:
using System; namespace net.yinzhong { class Demo { static void Main(string[] args){ int[,] arr = new int[3,4]{ {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; for(int i = 0; i < 3; i++){ for(int j = 0; j < 4; j++){ Console.WriteLine("arr[{0},{1}] = {2}", i, j, arr[i,j]); } } Console.ReadLine(); } } }
运行结果如下:
arr[0,0] = 0 arr[0,1] = 1 arr[0,2] = 2 arr[0,3] = 3 arr[1,0] = 4 arr[1,1] = 5 arr[1,2] = 6 arr[1,3] = 7 arr[2,0] = 8 arr[2,1] = 9 arr[2,2] = 10 arr[2,3] = 11