调整c#数组的大小

时间:2011-10-31 23:17:40

标签: c#

我在调整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。 干杯 肖恩。

1 个答案:

答案 0 :(得分:6)

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