调整c#数组的大小

调整c#数组的大小,c#,C#,我在调整c#2D数组的大小时遇到一些问题: 我在私人部分有以下代码: private int[,] _TestArray; 在我的属性getter中,我正在做: if (_TestArray ==null) _TestArray =new integer[1,1]; _TestArray =new[x,y]; 然后在一个单独的函数中,我做: if (_TestArray ==null) _TestArray =new integer[1,1]; _TestArray =new[x,y];

我在调整c#2D数组的大小时遇到一些问题: 我在私人部分有以下代码:

private int[,] _TestArray;
在我的属性getter中,我正在做:

if (_TestArray ==null)
_TestArray =new integer[1,1];
_TestArray =new[x,y];
然后在一个单独的函数中,我做:

if (_TestArray ==null)
_TestArray =new integer[1,1];
_TestArray =new[x,y];
其中x和y是两个整数,应该是数组的新大小。 然后,当我尝试向数组中添加一个元素时,我会得到一个超出范围的索引异常点:

TestArray[x, y] = 5;
我的印象是,使用新的int[x,y]可以调整数组的大小,但显然不是。 有人能告诉我我错过了什么吗? 我已经看了其他答案,但似乎没有帮助。 谢谢你的帮助。 干杯
Sean.

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