83
string[][] Tablero = new string[3][3];

我需要有一个 3x3 数组排列来保存信息。如何在 C# 中声明它?

4

12 回答 12

114
string[,] Tablero = new string[3,3];

您还可以使用数组初始化器语法在同一行中实例化它,如下所示:

string[,] Tablero = new string[3, 3] {{"a","b","c"},
                                      {"d","e","f"}, 
                                      {"g","h","i"} };
于 2010-09-28T15:07:52.690 回答
57

你可能想要这个:

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"}
};
于 2010-09-28T15:08:13.513 回答
17

您刚刚声明了一个锯齿状数组。这种类型的数组在所有维度上都可以有不同的大小。例如:

string[][] jaggedStrings =  {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};

在您的情况下,您需要常规数组。请参阅上面的答案。 有关锯齿状数组的更多信息

于 2010-09-28T15:13:30.193 回答
12

我假设你正在寻找这个:

        string[,] Tablero = new string[3,3];

锯齿状数组的语法是:

        string[][] Tablero = new string[3][];
        for (int ix = 0; ix < 3; ++ix) {
            Tablero[ix] = new string[3];
        }
于 2010-09-28T15:08:46.897 回答
10

C# 中有 2 种类型的多维数组,称为MultidimensionalJagged

对于多维,您可以通过:

字符串 [,] 多 = 新字符串 [3, 3];

对于锯齿状数组,您必须编写更多代码:

string[][] jagged = new string[3][];
            for (int i = 0; i < jagged.Length; i++)
            {
                jagged[i] = new string[3];
            }

简而言之,锯齿状数组既更快又具有直观的语法。有关更多信息,请参阅:这个 Stackoverflow 问题

于 2013-10-13T13:59:10.577 回答
9

尝试这个 :

string[,] myArray = new string[3,3];

看看http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx

于 2010-09-28T15:08:01.643 回答
6

也可以像这样初始化 3x3(多维)数组(您已经声明了它):

string[,] Tablero =  {
                        { "a", "b", "c" },
                        { "d", "e", "f" }, 
                        { "g", "h", "i"} 
                     };
于 2013-10-13T13:51:28.757 回答
6
string[,] Tablero = new string[3,3];
于 2010-09-28T15:08:47.213 回答
6

当您尝试创建一个多维数组时,您需要做的就是在声明中添加一个逗号,如下所示:

string[,] tablero = new string[3,3].
于 2010-09-28T15:09:17.897 回答
6

string[][]不是二维数组,它是数组的数组(锯齿状数组)。那是不同的东西。

要声明二维数组,请使用以下语法:

string[,] tablero = new string[3, 3];

如果你真的想要一个锯齿状数组,你需要像这样初始化它:

string[][] tablero = new string[][] { new string[3], 
                                      new string[3], 
                                      new string[3] };
于 2010-09-28T15:11:46.143 回答
3

您也可以编写下面的代码。

Array lbl_array = Array.CreateInstance(typeof(string), i, j);

其中“i”是行数,“j”是列数。使用 'typeof(..)' 方法,您可以选择数组的类型,即 int、string、double

于 2014-10-05T11:39:39.107 回答
-1

这里有很多关于在 C# 中使用数组的示例。

我希望这有帮助。

谢谢,达米安

于 2010-09-28T15:09:21.110 回答