2013-08-28 19 views
0

我的代碼在這裏。但是我得到了兩個錯誤。數組初始化器只能用於變量或字段初始值設定項。嘗試使用新的表達式。無法運行兩行三列字符串數組與C#

using System; 

public class twoDimArray 
{ 
public static void Main(string[] args) 
{ 
    String[] city=new String[] { {"NewYork","Muscat","London"} ,{"Cairo","Beijing","CapeTown"} }; 

    for (int i=0; i<2; i++) 
    {for (int j=0; j<3; j++) 

    { 
     System.Console.Write(city[i][j]+"\t"); 
    } 
     System.Console.Write("\n"); 
    } 
} 
} 
+2

這是什麼錯誤 – Amit

回答

1

試試這個:而不是

String[] city=new String[] { "NewYork","Muscat","London","Cairo","Beijing","CapeTown" }; 

String[] city=new String[] { {"NewYork","Muscat","London"} ,{"Cairo","Beijing","CapeTown"} }; 

第二個是錯誤的,因爲你是在一個數組初始化其他2個陣列。

var city=new List<String[]> {new [] {"NewYork","Muscat","London"} , new []{"Cairo","Beijing","CapeTown"}}; 

這將創建字符串數組的列表,或該代碼將創建的二維數組:

String[,] city=new String[,] { {"NewYork","Muscat","London"} ,{"Cairo","Beijing","CapeTown"} }; 
1

String[] city=new String[]是一個維陣列....

use String[,] city=new String[,]()

4

變化您的聲明到

String[,] city = new String[,] { 
        { "NewYork", "Muscat", "London" }, 
        { "Cairo", "Beijing", "CapeTown" } }; 

,而不是硬編碼upperbounds而且,這將是更好的

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

試試這個

String[,] city=new String[,] { {"NewYork","Muscat","London"} ,{"Cairo","Beijing","CapeTown"} }; 
1

嗯,這取決於你想要達到的目的。如果是2維數組,你應該使用:

String[,] city = new String[,]{ { "NewYork", "Muscat", "London" }, { "Cairo", "Beijing", "CapeTown" } }; 

,並呼籲,例如,像這樣:

System.Console.Write(city[0, 1]); 
1

雖然使用

string[,] = new string... 

可以正常工作,我不會如果你需要序列化它,不推薦它。我寧願使用字符串列表的列表。

List<object> firstLevel = new List<object>(); 
List<string> secondLevel = new List<string>("first", "second", "third"); 
firstLevel.Add(secondLevel); 
secondLevel = ("first", "second", "third"); 
firstLevel.Add(secondLevel); 
相關問題