我在调整c#2D数组时遇到了一些麻烦: 我在私有部分中有以下代码:
private int[,] _TestArray;
在我的属性getter中,我正在做:
if (_TestArray ==null)
_TestArray =new integer[1,1];
然后在一个单独的函数中,我正在做:
_TestArray =new[x,y];
其中x和y是两个整数,应该是数组的新大小。 当我尝试向数组添加一个元素时,我得到一个超出范围异常点的索引到该行:
TestArray[x, y] = 5;
我的印象是,做一个新的int [x,y]会调整数组的大小,但显然不是。 有人可以告诉我我错过了什么吗? 我看了其他的答案,但似乎没有帮助。 任何帮助apreciated。 干杯 肖恩。
答案 0 :(得分:6)
数组中的最后一个有效元素是TestArray [x-1,y-1]。它从0开始计数。所以你可能想要使用new int [x + 1,y + 1],但这是猜测。请考虑使用List<Point>
代替,一次调整一个元素的大小非常昂贵。 List使用更智能的算法,您不必自己将元素复制到新数组中。