C#二维数组怎么做
C#二维数组怎么做 int[][] arr = new int[2][14]; for(int i=0;i<2;i++) { for(int n=0;n<14;n++) { arr[i][n]=" 要赋的值"; } } ### C#中的二维数组操作详解 #### 一、二维数组定义与初始化 在C#中,二维数组可以被看作是数组的数组。常见的二维数组形式主要有两种:**矩形数组**(Jagged Array)和**真正意义上的二维数组**。 ##### 1.1 矩形数组(Jagged Array) 在C#中,可以创建一个数组,其中的每个元素也是一个数组,这种结构通常被称为**矩形数组**或**锯齿数组**。这种数组的每个子数组可以有不同的长度。 例如,在题目中给出的例子: ```csharp int[][] arr = new int[2][]; arr[0] = new int[14]; arr[1] = new int[14]; ``` 这里首先定义了一个包含两个元素的一维数组`arr`,然后为每个元素分配了长度为14的整型数组。 初始化时也可以直接指定每个子数组的长度: ```csharp int[][] arr = new int[2][]; arr[0] = new int[14]; arr[1] = new int[10]; ``` 这种方式创建的数组可以实现动态调整子数组的大小,但是无法像真正的二维数组那样进行简单的遍历操作。 ##### 1.2 真正的二维数组 真正的二维数组是一种矩形结构,其所有行都具有相同的列数。它可以通过以下方式声明: ```csharp int[,] arr = new int[2, 14]; ``` 这里创建了一个2行14列的二维整型数组。 #### 二、二维数组的初始化 对于真正的二维数组,可以直接在声明时进行初始化,或者之后通过索引访问来设置值。 ##### 2.1 直接初始化 可以通过以下方式直接初始化: ```csharp int[,] arr = new int[2, 14] { { 1, 2, 3, ..., 14 }, { 15, 16, 17, ..., 28 } }; ``` 这种方式只适用于固定长度的数组,并且所有的子数组必须具有相同的长度。 ##### 2.2 动态设置值 另一种方式是在声明后通过循环来动态设置数组中的值: ```csharp int[,] arr = new int[2, 14]; for (int i = 0; i < 2; i++) { for (int j = 0; j < 14; j++) { arr[i, j] = i * 14 + j + 1; } } ``` #### 三、二维数组的操作 对于二维数组的操作主要包括赋值、获取值以及遍历等基本操作。 ##### 3.1 赋值与获取值 可以通过指定索引来赋值和获取值: ```csharp // 设置值 arr[0, 0] = 1; // 获取值 int value = arr[0, 0]; ``` ##### 3.2 遍历二维数组 可以使用嵌套循环来遍历整个数组: ```csharp for (int i = 0; i < 2; i++) { for (int j = 0; j < 14; j++) { Console.WriteLine("arr[{0}, {1}] = {2}", i, j, arr[i, j]); } } ``` #### 四、示例代码解析 题目中给出的代码片段包含了对二维数组的操作,包括初始化、赋值以及一个二维数组相加的方法实现。 ##### 4.1 初始化与赋值 ```csharp int[,] a1 = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; int[,] a2 = new int[,] { { 9, 8, 7 }, { 6, 5, 4 }, { 3, 2, 1 } }; ``` 这里通过直接初始化的方式创建了两个3x3的二维数组`a1`和`a2`。 ##### 4.2 数组相加方法 ```csharp private int[,] add(int[,] a1, int[,] a2, int width, int height) { if (a1.GetLength(0) != width || a1.GetLength(1) != height || a2.GetLength(0) != width || a2.GetLength(1) != height) return null; int[,] a3 = new int[width, height]; for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { a3[i, j] = a1[i, j] + a2[i, j]; } } return a3; } ``` 此方法实现了两个相同维度的二维数组的相加功能。通过检查输入数组的维度是否一致来确保操作的有效性,如果不符合则返回`null`。 ##### 4.3 输出结果 ```csharp int[,] a3; a3 = add(a1, a2, 3, 3); if (a3 == null) return; string s = ""; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { s += a3[i, j].ToString() + " "; } s += "\n"; } MessageBox.Show(s); ``` 这里通过调用`add`方法得到两个数组的和,并将其输出到控制台。 #### 五、总结 通过本文的学习,我们了解了C#中二维数组的基本概念、定义方式、初始化方法以及常见操作。同时,还深入分析了一个具体的二维数组相加实例,帮助读者更好地理解如何在实际编程中应用这些知识。