如何在运行时分配二维数组的大小
本文关键字:二维数组 分配 运行时 | 更新日期: 2023-09-27 18:29:50
我有一个二维数组定义为这个
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;
}
您会得到索引异常,因为您的new int[,]
至少没有array1
那么大。与您的说法相反,您可以使用array1维度的长度来定义array2。用途:
int[,] array2 = new int[array1.GetLength(0),array1.GetLength(1)];
这将把array2
设置为与array1
相同的维度,并且array1
的任何有效元素都将对array2
有效,因此不会得到索引异常。