簡體   English   中英

如何聲明二維字符串數組?

[英]How can I declare a two dimensional string array?

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", "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"}
};

在你的情況下,你需要常規陣列。 見上面的答案。 更多關於鋸齒狀陣列的信息

我假設你正在尋找這個:

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

鋸齒狀數組的語法是:

        string[][] Tablero = new string[3][];
        for (int ix = 0; ix < 3; ++ix) {
            Tablero[ix] = new string[3];
        }

C#中有兩種類型的多維數組,稱為MultidimensionalJagged

對於多維,您可以通過:

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

對於鋸齒狀數組,您必須編寫更多代碼:

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

簡而言之,鋸齒狀陣列既快又具有直觀的語法。 有關更多信息,請參閱: 此Stackoverflow問題

試試這個 :

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

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

也可以像這樣初始化一個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

有在C#中的數組工作的許多例子在這里

我希望這有幫助。

謝謝,達米安

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM