我有一个二维数组定义为
int[,] array1 = new int[,]{{1,0},{3,5},{2,5},{8,7}};
或者我可以输入任何其他二维数组作为array1,也许
array1 = new int[6,2]...
我想定义另一个也是二维数组的array2,我需要array2在两个维度上与array1具有相同的长度。我无法将array2定义为
new int[array1.GetLength(0), array1.GetLength(1)]
我该怎么定义它?如果我在代码下面运行时将其保留为new int[,]
,我会退出索引异常,我认为异常是有意义的。
for (int i = 0; i < array1.GetLength(0); i++)
for (int j = 0; j < array1.GetLength(1); j++)
{
if (array1[i, j] == -1)
array2[i, j] = i+j;
}
答案 0 :(得分:2)
您获得了索引例外,因为new int[,]
至少与array1
一样大。与您的声明相反,您可以使用array1的维度来定义array2。使用:
int[,] array2 = new int[array1.GetLength(0),array1.GetLength(1)];
这会将array2
设置为与array1
相同的维度,array1
的任何有效元素都将对array2
有效,因此您不会获得索引异常。