2013-06-27 90 views
0

調用數組我有點新的C#和希望端口從C#的一些程序,PHP在移植C#中的PHP

一件事怪對我來說,

double[][] rate = { new double[] { 1, 2, 3, 4, 5 }, 
        new double[] { 2, 4, 6, 8, 10} 
        }; 
double[,,] quest = {{{1,2,3,4}, {1,1,2,3}, {2,3,4,5}}, 
        {{2,3,4,5}, {1,1,1,1}, {3,3,3,3}} 
        }; 

for (int i = 0; i < f.Length; i++){ 
    dummy = rate[i][(int)quest[1, 1, 1] - 3]; 
} 

我的問題是, 爲什麼你可以這樣調用cube-array quest [1,1,1],但是爲什麼還要像PHP一樣調用數組rate [i] [blah]?

它們是否可以互換使用?只是表達的問題,還是比我知道的更多?

回答

0

int[,,]是一個多維數組。它也被稱爲矩形陣列,因爲它更像是一個X維矩形塊(在這種情況下X = 3)。數組中的每個切片,行和列分別與其他切片/行/列具有相同的大小。

int[][][]是一個int數組數組。它更加樹木。它也被稱爲「鋸齒狀」數組,因爲給定索引處的每個數組可以有不同的長度。

在很多情況下,他們可以做同樣的事情,但他們各有其長處。矩形數組具有可預測的「形狀」,如果a,bc位於創建陣列時設置的範圍內,您不必擔心x[a, b, c]存在偏執。您也不必擔心爲陣列的每個級別創建數組和子陣列。另一方面,鋸齒陣列在調整和擴展陣列的一部分而不做整個事情時可以更靈活。

就類似的結構而言,鋸齒陣列更接近於PHP傾向於處理數組的方式。

0

第一個是array-of-array,另一個是多維數組。 這裏是鏈接說這個Arrays