有没有更优雅的方法在 C# 中嵌套数组
本文关键字:嵌套 数组 方法 有没有 | 更新日期: 2023-09-27 18:36:14
我正在翻译一个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 列的矩阵,那很好。有没有更简单的方法来初始化矩阵?谢谢你的帮助。
根据MSDN,你应该能够写
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[][]
) 必须按照您的描述进行初始化。
也许你应该考虑将数据存储在交错数组的多维数组中
//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 }
};