网站首页 > 基础教程 正文
C# 中多维数组的访问和修改
C# 支持多维数组,可以声明为二维或三维及更多维度。常见的多维数组包括矩形数组(Rectangular Array)和交错数组(Jagged Array)。以下讨论如何实现矩形多维数组的访问和修改。
多维数组的声明
- 矩形数组:各维度的大小固定,所有元素存储在连续的内存位置。
- 交错数组:本质是数组的数组,每一维的大小可以不同。
矩形多维数组的声明与初始化
using System;
class Program
{
static void Main()
{
// 声明并初始化一个二维矩形数组
int[,] matrix = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
// 访问和修改数组元素
Console.WriteLine("初始数组:");
PrintMatrix(matrix);
// 修改矩阵的某个值
matrix[1, 1] = 99; // 修改第二行第二列的值
Console.WriteLine("\n修改后的数组:");
PrintMatrix(matrix);
}
static void PrintMatrix(int[,] matrix)
{
for (int i = 0; i < matrix.GetLength(0); i++) // 遍历行
{
for (int j = 0; j < matrix.GetLength(1); j++) // 遍历列
{
Console.Write(matrix[i, j] + " ");
}
Console.WriteLine();
}
}
}
运行结果
初始数组:
1 2 3
4 5 6
7 8 9
修改后的数组:
1 2 3
4 99 6
7 8 9
交错数组的声明与初始化
using System;
class Program
{
static void Main()
{
// 声明并初始化交错数组
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[] { 1, 2 };
jaggedArray[1] = new int[] { 3, 4, 5 };
jaggedArray[2] = new int[] { 6 };
// 访问和修改交错数组的元素
Console.WriteLine("初始交错数组:");
PrintJaggedArray(jaggedArray);
// 修改元素
jaggedArray[1][1] = 99; // 修改第二行第二列
Console.WriteLine("\n修改后的交错数组:");
PrintJaggedArray(jaggedArray);
}
static void PrintJaggedArray(int[][] jaggedArray)
{
for (int i = 0; i < jaggedArray.Length; i++) // 遍历行
{
for (int j = 0; j < jaggedArray[i].Length; j++) // 遍历列
{
Console.Write(jaggedArray[i][j] + " ");
}
Console.WriteLine();
}
}
}
运行结果
初始交错数组:
1 2
3 4 5
6
修改后的交错数组:
1 2
3 99 5
6
总结
矩形数组
- 适用于所有维度大小固定的场景。
- 元素访问方式:matrix[row, column]。
交错数组
- 每一行的列数可以不同。
- 元素访问方式:jaggedArray[row][column]。
- 更适合稀疏矩阵或不规则数组的场景。
建议
- 使用矩形数组时,选择 GetLength() 方法来动态获取维度大小,避免硬编码。
- 交错数组更灵活,但内存布局分散,访问性能可能略逊于矩形数组。
猜你喜欢
- 2025-01-12 8个必会的高效提取数字法,你知道几个?
- 2025-01-12 条件太太太太太多怎么求和?教你5招,轻松就搞定
- 2025-01-12 函数公式的左膀右臂:ROW、COLUMN函数知多少
- 2025-01-12 【excel】从现在开始掌握sortby函数,各类排序都不怕!
- 2025-01-12 Vlookup一次性查找多个值,4种方法,你更喜欢哪种?
- 2025-01-12 常用公式,效果挺好
- 2025-01-12 获取列号函数COLUMN的应用技巧
- 2025-01-12 INDEX函数怎么用?两种方法全在这儿
- 2025-01-12 快速查询,INDEX和MATCH函数必须会!
- 2025-01-12 EXCEL:别想得太复杂,动态的职工信息表,用INDEX函数就可搞定
- 01-128个必会的高效提取数字法,你知道几个?
- 01-12条件太太太太太多怎么求和?教你5招,轻松就搞定
- 01-12函数公式的左膀右臂:ROW、COLUMN函数知多少
- 01-12【excel】从现在开始掌握sortby函数,各类排序都不怕!
- 01-12Vlookup一次性查找多个值,4种方法,你更喜欢哪种?
- 01-12常用公式,效果挺好
- 01-12获取列号函数COLUMN的应用技巧
- 01-12INDEX函数怎么用?两种方法全在这儿
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)