string[][] Tablero = new string[3][3];
我需要一个3x3的阵列来保存信息。如何在C#中声明呢?
string[][] Tablero = new string[3][3];
我需要一个3x3的阵列来保存信息。如何在C#中声明呢?
Answers:
string[,] Tablero = new string[3,3];
您还可以使用数组初始化器语法在同一行中实例化它,如下所示:
string[,] Tablero = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
var tablero = new string[3,3];
如果您使用的是C#3或更高版本
new string[,]
)
new string[,]
...string [,] Tablero = {{"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", "1.3"},
new string[] {"2.1","2.2", "2.3"},
new string[] {"3.1", "3.2", "3.3"}
};
您刚刚声明了锯齿状数组。对于所有尺寸,此类阵列可以具有不同的大小。例如:
string[][] jaggedStrings = {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};
在您的情况下,您需要常规数组。请参阅上面的答案。 关于锯齿数组的更多信息
在C#中,有两种类型的多维数组,称为Multidimensional
和Jagged
。
对于多维,您可以:
string [,] multi =新的string [3,3];
对于锯齿状数组,您必须编写更多代码:
string[][] jagged = new string[3][];
for (int i = 0; i < jagged.Length; i++)
{
jagged[i] = new string[3];
}
简而言之,锯齿状数组不仅速度更快,而且语法直观。有关更多信息,请参见:此Stackoverflow问题
string[][] jagged = { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
或 直接将其初始化var jagged = new[] { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
当您尝试创建多维数组时,您需要做的就是在声明中添加一个逗号,如下所示:
string[,] tablero = new string[3,3].
您还可以编写以下代码。
Array lbl_array = Array.CreateInstance(typeof(string), i, j);
其中“ i”是行数,“ j”是列数。使用'typeof(..)'方法,您可以选择数组的类型,即int,string,double