2015-09-16 30 views
0

我需要一些幫助從Java轉換這個多維數組c#Java的多維數組到C#

int[] tileMap = new int[][] { 
     {0, 1, 2, 3}, 
     {3, 2, 1, 0}, 
     {0, 0, 1, 1}, 
     {2, 2, 3, 3} 
}; 

我工作的落實上統一生成等距世界this#1的答案。我知道Java和c#,但我缺少我需要的c#多維數組來做轉換。

我想我只能猜測其轉換:

int[,] tileMap = new int[]{ 
     {0, 1, 2, 3}, 
     {3, 2, 1, 0}, 
     {0, 0, 1, 1}, 
     {2, 2, 3, 3} 
}; 

但我可以告訴大家,這是不對的,而且它拋出的錯誤。

在此先感謝您的幫助!

+2

請看一看這個https://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx – HungPV

回答

1

像這樣:

int[][] jagged = new int[][] { 
    new int[] {0, 1, 2, 3}, 
    new int[] {3, 2, 1, 0}, 
    new int[] {0, 0, 1, 1}, 
    new int[] {2, 2, 3, 3} 
}; 

編輯;以上支持鋸齒狀陣列。對於非鋸齒狀多維數組,從HungPV的評論:

var tileMap = new int[,] { 
    {0, 1, 2, 3}, 
    {3, 2, 1, 0}, 
    {0, 0, 1, 1}, 
    {2, 2, 3, 3} 
}; 

您不同的使用當中,還有:

var res = jagged[0][1];
VS
var res = tileMap[0,1];

1

您在new int[]

失蹤 ,

請試試這個

int[,] tileMap = new int[,]{ 
     {0, 1, 2, 3}, 
     {3, 2, 1, 0}, 
     {0, 0, 1, 1}, 
     {2, 2, 3, 3} 
}; 
+0

這做到了: )我幾秒鐘前從@ HungPV的評論中發現它。將在6分鐘後讓我接受 –

+0

Java鋸齒陣列轉換爲C#鋸齒陣列(按照Rob的回答)。不知道爲什麼這麼多人似乎想要將這些轉換爲C#特有的多維數組。 –

+0

@DaveDoknjas我發現更多信息,所以我標記Rob的答案是正確的,因爲我意識到多維數組是不正確的。我之前並不知道鋸齒狀的陣列,它們看起來很有用:) –

0

你可以這樣初始化。

int[,] tileMap = new int[4, 4]{ 
     {0, 1, 2, 3}, 
     {3, 2, 1, 0}, 
     {0, 0, 1, 1}, 
     {2, 2, 3, 3} 
}; 

Size不是強制性的,你甚至可以用int[,]