c# - 尝试访问数组元素时出现 IndexOutOfRangeException

标签 c# arrays

我不明白为什么我会在下面的代码中遇到超出范围的异常。 _maxRowIndex_maxColIndex 的值分别为 50。当 rowcol 都等于 0 时,第一次抛出异常。我不明白为什么 0, 0 会超出数组范围。

    _cells = new ToolBarButton[_maxRowIndex, _maxColIndex];
    .
    .
    .
    for (int col = 0; col <= _maxColIndex; col++) {
                    for (int row = 0; row <= _maxRowIndex;  row++)
                    {

                      if (_cells[row, col] == null)
                        {
                           PopulateCell(toolBarbutton, row, col);
                        }

                    }
                }

最佳答案

数组索引从 0 开始,一直到 [upperbound-1]。由于您的循环从 0 开始,因此它必须以 < 极限值而不是 <= 极限值结束。因此,将循环中的“<=”更改为“<”。例如:

col <= _maxColIndex

应该改为

col < _maxColIndex

关于c# - 尝试访问数组元素时出现 IndexOutOfRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4252579/

相关文章:

c# - 如果 .NET Task.Run 用于运行 CPU 密集型任务,那么启动 IO 密集型任务在后台运行的正确方法是什么?

c# - 如何在多个用户之间切换服务帐户

c# - 如何将我的 .net WinForms 应用程序转换为 Windows 10 Mobile?

c# - 如何从 UICollectionElementKindSection.Header 转换为 NSString?

c - 在我的代码中的函数之间返回数组指针有问题吗?

C#新操作bug?

php - 从多维数组php生成分组的逗号分隔列表

c - 将用户确定的坐标分配给嵌套数组

c - 全局修改数组/结构不起作用

javascript - 如何重复显示数组中的每个元素并在单击按钮时停止