2017-06-27 119 views
3

如何正確初始化並填充我的多維數組?如何正確初始化並填充我的多維數組?

string[] thisCanVaryInLength = new string[3] {"col1,nam1","col2,nam2","col3,nam3"}; 

string[,] columnsAndTheirNames = ?? //Unsure how to initialize 

for (int i = 0; i < thisCanVaryInLength.Length; i++) 
{ 
    columnsAndTheirNames[i, 0] = thisCanVaryInLength[0]; 
    columnsAndTheirNames[i, 1] = thisCanVaryInLength[1]; 
} 

回答

2

如何:

string[,] columnsAndTheirNames = new string[thisCanVaryInLength.Length, 2]; 

或值:

string[,] columnsAndTheirNames = new string[,] { 
       {"col1,nam1", "col2,nam2"}, 
       {"col1,nam1", "col2,nam2"}, 
       {"col1,nam1", "col2,nam2"}}; 

這是你當前的代碼做什麼,但也許你想這樣的:

string[,] columnsAndTheirNames = new string[,] { 
       {"col1", "nam1"}, 
       {"col2", "nam2"}, 
       {"col3", "nam3"}}; 
0

什麼對這個?

private static string[,] columnsAndTheirNames = new string[,] 
{ 
    { "col1", "nam1" }, 
    { "col2", "nam2" }, 
    { "col3", "nam3" } 
}; 

private void foo() { 
    Console.WriteLine(columnsAndTheirNames [0, 0]); // col1 
    Console.WriteLine(columnsAndTheirNames [0, 1]); // nam1 
    Console.WriteLine(columnsAndTheirNames [1, 0]); // col2 
    Console.WriteLine(columnsAndTheirNames [1, 1]); // nam2 
} 
0
string[,] values = 
{ 
    {"col1","val1"}, 
    {"col2","val2"}, 
    {"col3","val3"}, 
}; 

看在調試器它是如何期待。

+0

,我認爲它在數組內容可能會有所不同的OP,變量(thisCanVaryInLength),因此名字說,我可能是錯的。 – Rod

1

有2種方式來分配一個2維數組

方法一:

在這裏,您有空字符串

初始化它
string[,] columnsAndTheirNames1 = new string[2, 3]; 

方法2:

在這裏你用字符串初始化它。

string[,] columnsAndTheirNames = { 
            { "row1-col1", "row1-col2"}, 
            { "row2-col1", "row2-col2"}, 
            { "row3-col1", "row3-col2"} 
           }; 

在這裏,您可以看到如何訪問:

for (int i = 0; i < columnsAndTheirNames.GetLength(0); ++i) { 
    for (int j = 0; j < columnsAndTheirNames.GetLength(1); ++j) { 
     Console.Write(columnsAndTheirNames[i, j] + "\t"); 
    } 
    Console.WriteLine(); 
} 

輸出希望像下面

row1-col1  row1-col2 
row2-col1  row2-col2 
row3-col1  row3-col2 

所以,你的代碼應該是類似下面

string[] thisCanVaryInLength = new string[3] { "col1,nam1", "col2,nam2", "col3,nam3" }; 

string[,] columnsAndTheirNames = new string[2, thisCanVaryInLength.Length]; 

for (int i = 0; i < thisCanVaryInLength.Length; i++) { 
    var items = thisCanVaryInLength[i].Split(','); 
    columnsAndTheirNames[0, i] = items[0]; 
    columnsAndTheirNames[1, i] = items[1]; 
} 

for (int i = 0; i < columnsAndTheirNames.GetLength(0); ++i) { 
    for (int j = 0; j < columnsAndTheirNames.GetLength(1); ++j) { 
     Console.Write(columnsAndTheirNames[i, j] + "\t"); 
    } 
    Console.WriteLine(); 
} 

,輸出是

col1 col2 col3 
nam1 nam2 nam3