我在调整 C# 2D 数组大小时遇到一些问题: 我在私有(private)部分有以下代码:
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] 会调整数组的大小,但显然不是。 有人可以告诉我我错过了什么吗? 我看过其他答案,但似乎没有帮助。 任何帮助表示赞赏。 干杯 肖恩。
最佳答案
数组中最后一个有效元素是 TestArray[x-1, y-1]。它从 0 开始计数。因此您可能想使用 new int[x+1, y+1] 但这只是猜测。请考虑使用 List<Point>
相反,一次调整一个元素的数组大小是非常昂贵的。 List 使用更智能的算法,您不必自己将元素复制到新数组中。
关于c# - 调整 C# 数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7960879/