c# - 调整 C# 数组的大小

标签 c#

我在调整 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/

相关文章:

c# - 如何删除文本文件中奇数索引行上的特定内容形式字符串

c# - 使用 C# 在 Windows 窗体中嵌入 Flash 的示例

c# - 未经授权的错误机器人框架

c# - 如何确定日期是否位于当前周日期之间?

c# - dll 和 nuget 包有什么区别?

c# - 为 .NET Web 服务设置超时值

c# - .Net核心2.2 : how to change characterset in EF codefirst approach

c# - MVC2 c# 表格中的多种形式。一种表单在回发时覆盖其他表单元素

c# - 有没有办法在 asp.net core 3.1 Rest-API 中使用 Identity Server 功能

c# - 使用c#调用谷歌翻译器