有没有一种更优雅的方法可以在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}}; 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}};

有没有一种更优雅的方法可以在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}}; 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}};,c#,arrays,matrix,C#,Arrays,Matrix,基本上,在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}}; static int[][] grad4 = new int[][]{ new int[]{0,1,1,1},new int[]{0,1,1,-1},new int[]{0,1

基本上,在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}};
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多列。有没有更简单的方法来初始化矩阵?谢谢您的帮助。

也许您应该考虑将数据存储在一个多维数组中,而不是一个锯齿状数组

//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 }
                  };
根据你的要求,你应该能够写作

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[][]
)必须按照所述进行初始化