我想创建一个2D数组(本质上是一个网格),以使每个元素都是一个长度为2的整数数组(每个元素代表一个2D向量)。
我直觉上认为这可以,但是我得到了invalid rank specifier
:
int[][,] rarr = new int[2][100, 100];
答案 0 :(得分:3)
您要查找的代码是这样:
int[][,] rarr = new int[2][,];
rarr[0] = new int[100, 100];
rarr[1] = new int[100, 100];
或更笼统地说,这是
int[][,] rarr = new int[2][,];
for (int i = 0; i < 2; i++)
rarr[i] = new int[100, 100];
您的代码正在尝试在一行代码中分配3个不同的数组-您不能这样做。就像您要尝试执行与此非法代码一样的操作:
List<Dictionary<string, string>> x = new List<new Dictionary<string, string>()>();
我觉得,根据您的描述,您实际上确实想要这样:
int[,][] rarr = new int[100,100][];
for (int i = 0; i < 100; i++)
for (int j = 0; j < 100; j++)
rarr[i, j] = new int[2];