string[][] Tablero = new string[3][3];
我需要有一个 3x3 数组排列来保存信息。如何在 C# 中声明它?
string[][] Tablero = new string[3][3];
我需要有一个 3x3 数组排列来保存信息。如何在 C# 中声明它?
string[,] Tablero = new string[3,3];
您还可以使用数组初始化器语法在同一行中实例化它,如下所示:
string[,] Tablero = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
你可能想要这个:
string[,] Tablero = new string[3,3];
这将为您创建一个类似矩阵的数组,其中所有行都具有相同的长度。
示例中的数组是所谓的锯齿状数组,即元素可以具有不同大小的数组数组。必须以不同的方式创建锯齿状数组:
string[][] Tablero = new string[3][];
for (int i = 0; i < Tablero.GetLength(0); i++)
{
Tablero[i] = new string[3];
}
您还可以使用初始化程序来用数据填充数组元素:
string[,] Tablero = new string[,]
{
{"1.1", "1.2", "1.3"},
{"2.1", "2.2", "2.3"},
{"3.1", "3.2", "3.3"}
};
如果是锯齿状数组:
string[][] Tablero = new string[][]
{
new string[] {"1.1", "1.2"},
new string[] {"2.1", "2.2", "2.3", "2.4"},
new string[] {"3.1", "3.2", "3.3"}
};
您刚刚声明了一个锯齿状数组。这种类型的数组在所有维度上都可以有不同的大小。例如:
string[][] jaggedStrings = {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};
在您的情况下,您需要常规数组。请参阅上面的答案。 有关锯齿状数组的更多信息
我假设你正在寻找这个:
string[,] Tablero = new string[3,3];
锯齿状数组的语法是:
string[][] Tablero = new string[3][];
for (int ix = 0; ix < 3; ++ix) {
Tablero[ix] = new string[3];
}
C# 中有 2 种类型的多维数组,称为Multidimensional
和Jagged
。
对于多维,您可以通过:
字符串 [,] 多 = 新字符串 [3, 3];
对于锯齿状数组,您必须编写更多代码:
string[][] jagged = new string[3][];
for (int i = 0; i < jagged.Length; i++)
{
jagged[i] = new string[3];
}
简而言之,锯齿状数组既更快又具有直观的语法。有关更多信息,请参阅:这个 Stackoverflow 问题
也可以像这样初始化 3x3(多维)数组(您已经声明了它):
string[,] Tablero = {
{ "a", "b", "c" },
{ "d", "e", "f" },
{ "g", "h", "i"}
};
string[,] Tablero = new string[3,3];
当您尝试创建一个多维数组时,您需要做的就是在声明中添加一个逗号,如下所示:
string[,] tablero = new string[3,3].
string[][]
不是二维数组,它是数组的数组(锯齿状数组)。那是不同的东西。
要声明二维数组,请使用以下语法:
string[,] tablero = new string[3, 3];
如果你真的想要一个锯齿状数组,你需要像这样初始化它:
string[][] tablero = new string[][] { new string[3],
new string[3],
new string[3] };
您也可以编写下面的代码。
Array lbl_array = Array.CreateInstance(typeof(string), i, j);
其中“i”是行数,“j”是列数。使用 'typeof(..)' 方法,您可以选择数组的类型,即 int、string、double