2016-02-25 147 views
2

我翻譯從C矩陣++項目,看起來像這樣:有沒有一種更優雅的方式來在C#中嵌套數組?

static int grad4[][4] = {{0,1,1,1}, {0,1,1,-1}, {0,1,-1,1}, {0,1,-1,-1}, 
{-1,1,1,0}, {-1,1,-1,0}, {-1,-1,1,0}, {-1,-1,-1,0}}; 

,基本上做到在C#的方式是嵌套數組,右?所以數組是這樣的:

static int[][] grad4 = new int[][]{ 
new int[]{0,1,1,1},new int[]{0,1,1,-1},new int[]{0,1,-1,1},new int[]{0,1,-1,-1}, 
new int[]{-1,1,1,0},new int[]{-1,1,-1,0},new int[]{-1,-1,1,0},new int[]{-1,-1,-1,0}}; 

這很好,如果矩陣不是太大,但項目有一些超過80列的矩陣。有沒有更簡單的方法來初始化矩陣?感謝您的幫助。

回答

9

根據MSDN的多維數組instad你的數據,你應該能夠編寫

static int[,] grad4 = new int[,]{{0,1,1,1}, {0,1,1,-1}, {0,1,-1,1}, {0,1,-1,-1}, 
           {-1,1,1,0}, {-1,1,-1,0}, {-1,-1,1,0}, {-1,-1,-1,0}}; 

聲明一個多維陣列。如您所描述的,必須初始化鋸齒陣列(int[][])。

6

或許你應該考慮存儲在交錯數組

//multidimensional Array 
int[,] multi = { { 7, 2, 6, 1 }, { 3, 5, 4, 8 }, { 6, 2, 9, 50 } }; 


//array of arrays (jagged arrays) 
int[][] jagged = new int[][] { 
        new int[] { 1, 2, 3, 4 }, 
        new int[] { 11, 12 }, 
        new int[] { 21, 22, 23 } 
        }; 
相關問題