2011-10-31 117 views
2

我有一些麻烦调整交流#二维数组: 我在私人部分添加以下代码:调整大小C#阵列

private int[,] _TestArray; 

在我的性吸除,我这样做:

if (_TestArray ==null) 
_TestArray =new integer[1,1]; 
在一个单独的函数

然后,我做:

_TestArray =new[x,y]; 

其中x和y是两个整数,应该是数组的新大小。 当我再尝试的元素添加到阵列中,我得到一个索引超出范围的异常点到线:

TestArray[x, y] = 5; 

我的印象是,在做新的int下[X,Y]将调整阵列,但显然不是。 有人可以告诉我我错过了什么吗? 我看了其他答案,但似乎没有帮助。 任何帮助apreciated。 干杯 肖恩。

回答

6

数组中的最后一个有效元件是TestArray [X-1,Y-1]。它从0开始计数。所以你可能想使用新的int [x + 1,y + 1],但这是一个猜测。请考虑使用List<Point>来代替,一次调整数组的大小是非常昂贵的。列表使用更智能的算法,您不必将元素自己复制到新数组中。