C#多维数组
提示
- 多维数组的结构:C# 中的多维数组是一个数组,其每个元素本身也是数组。例如,二维数组可视为具有行和列的表格。
- 声明和初始化:多维数组通过特定的声明语法创建,可在声明时或之后初始化。例如,二维数组可以通过指定行和列的值进行初始化。
- 访问和修改元素:可以通过索引号访问和修改多维数组的元素,并使用嵌套循环遍历数组中的每个元素。
在学习多维数组之前,请确保你已经了解了 C# 中的单维数组。
在多维数组中,数组的每个元素也是一个数组。例如,
int[ , ] x = { { 1, 2 ,3}, { 3, 4, 5 } };
这里,x
是一个多维数组,它有两个元素:3 和 5。并且,数组的每个元素也是一个有 3 个元素的数组。
C# 中的二维数组
二维数组由作为其元素的单维数组组成。它可以表示为具有特定行数和列数的表格。
这里,行 3 和 5 是二维数组的元素。
1. 二维数组声明
这是在 C# 中声明二维数组的方法。
int[ , ] x = new int [2, 3];
这里,x
是一个有 2 个元素的二维数组。每个元素也是一个有 3 个元素的数组。
所以,总共这个数组可以存储 6 个元素(2 * 3)。
注意:单个逗号 [ , ] 表示数组是二维的。
2. 二维数组初始化
在 C# 中,我们可以在声明时初始化数组。例如,
int[ , ] x = { { 1, 2 ,3}, { 3, 4, 5 } };
这里,x
是一个有两个元素 {1, 2, 3}
和 {3, 4, 5}
的二维数组。我们可以看到数组的每个元素也是一个数组。
我们还可以在初始化时指定行数和列数。例如,
int [ , ] x = new int[2, 3]{ {1, 2, 3}, {3, 4, 5} };
3. 从二维数组中访问元素
我们使用索引号来访问二维数组的元素。例如,
// 一个二维数组
int[ , ] x = { { 1, 2 ,3}, { 3, 4, 5 } };
// 访问第一行的第一个元素
x[0, 0]; // 返回 1
// 访问第二行的第三个元素
x[1, 2]; // 返回 5
// 访问第一行的第三个元素
x[0, 2]; // 返回 3
示例:C# 二维数组
using System;
namespace MultiDArray {
class Program {
static void Main(string[] args) {
// 初始化二维数组
int[ , ] numbers = {{2, 3}, {4, 5}};
// 访问第一行的第一个元素
Console.WriteLine("索引 [0, 0] 处的元素: "+numbers[0, 0]);
// 访问第二行的第一个元素
Console.WriteLine("索引 [1, 0] 处的元素: "+numbers[1, 0]);
}
}
}
输出
索引 [0, 0] 处的元 素: 2
索引 [1, 0] 处的元素: 4
在上述示例中,我们创建了一个名为 numbers
的二维数组,其行为 3 和 5。
这里,我们使用索引号来访问二维数组的元素。
numbers[0, 0]
- 访问第一行的第一个元素(2)numbers[1, 0]
- 访问第二行的第一个元素(4)
更改数组元素
我们也可以更改二维数组的元素。要更改元素,我们只需将新值赋给特定索引。例如,
using System;
namespace MultiDArray {
class Program {
static void Main(string[] args) {
int[ , ] numbers = {{2, 3}, {4, 5}};
// 原始元素
Console.WriteLine("原索引 [0, 0] 的元素: "+numbers[0, 0]);
// 赋予新值
numbers[0, 0] = 222;
// 新元素
Console.WriteLine("新索引 [0, 0] 的元素: "+numbers[0, 0]);
}
}
}
输出
原索引 [0, 0] 的元素: 2
新索引 [0, 0] 的元素: 222
在上述示例中,索引 [0, 0] 的初始值是 2。注意这行代码,
// 赋予新值
numbers[0, 0] = 222;
这里,我们在索引 [0, 0] 赋予了新值 222。现在,索引 [0, 0] 的值从 2 变为 222。
使用循环遍历 C# 数组
using System;
namespace MultiDArray {
class Program {
static void Main(string[] args) {
int[ , ] numbers = { {2, 3, 9}, {4, 5, 9} };
for(int i = 0; i < numbers.GetLength(0); i++) {
Console.Write("行 "+ i+": ");
for(int j = 0; j < numbers.GetLength(1); j++) {
Console.Write(numbers[i, j]+" ");
}
Console.WriteLine();
}
}
}
}
输出
行 0: 2 3 9
行 1: 4 5 9
在上述示例中,我们使用了嵌套循环来遍历二维数组的元素。这里,
numbers.GetLength(0)
- 返回二维数组中的行数numbers.GetLength(1)
- 返回行中的元素数
注意:我们也可以创建一个三维数组。技术上讲,三维数组是一个包含多个二维数组作为其元素的数组。例如,
int[ , , ] numbers = { { { 1, 3, 5 }, { 2, 4, 6 } },
{ { 2, 4, 9 }, { 5, 7, 11 } } };
这里,[ , , ]
(两个逗号)表示三维数组。