摘要
C# 支持多维数组。多维数组又称为矩形数组,像excel,就是一个标准的二维数组。
正文
声明一个 二维数组
string[,] names;
int[,] ages;
多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。
一个二维数组可以被认为是一个带有 x 行和 y 列的表格。下面是一个二维数组,包含 3 行和 4 列:
image.png数组中的每个元素是使用形式为 a[ i , j ] 的元素名称来标识的,其中 a 是数组名称,i 和 j 是唯一标识 a 中每个元素的下标。
初始化二维数组
多维数组可以通过在括号内为每行指定值来进行初始化。
//声明一个行为3,列为4的二维数组
int[,] a = new int[3, 4] {
{0, 1, 2, 3} , /* 初始化索引号为 0 的行 */
{4, 5, 6, 7} , /* 初始化索引号为 1 的行 */
{8, 9, 10, 11} /* 初始化索引号为 2 的行 */
};
其它几种申明初使化
int[,] b = new int[2, 4];//行2,4列数
int[][] c = new int[2][];//这时申明不能指定列数,只能每行指定列数
c[0]=new int[2];//第一行2列
c[1]=new int[3];//第二行3列
c[2]=new int[4];//第3行4列
int[,] d = new int[2, 2];
d[0, 0] = 1;
d[0, 1] = 2;
d[1, 0] = 3;
d[1, 1] = 4;
一个列子
/* 一个带有 5 行 2 列的数组 */
int[,] a = new int[5, 2] { { 0, 0 }, { 1, 2 }, { 2, 4 }, { 3, 6 }, { 4, 8 } };
int i, j;
/* 输出数组中每个元素的值 */
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
Console.WriteLine($"a[{i},{j}] = {a[i,j]}");
}
}
Console.ReadKey();
image.png
将二维数组中数据行列数据调换位置
// See https://aka.ms/new-console-template for more information
int[,] a = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
Console.WriteLine("原数组");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write($"{a[i, j]} ");
}
Console.WriteLine();
}
Console.WriteLine("转换后数组");
int tmp;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < i; j++)
{
tmp = a[i, j];
a[i, j] = a[j, i];
a[j, i] = tmp;
}
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write($"{a[i, j]} ");
}
Console.WriteLine();
}
image.png
网友评论