计算平均值会引发“System.IndexOutOfRangeException”异常

时间:2016-11-14 15:55:59

标签: c# arrays visual-studio exception

我正在尝试编写一个黄金探矿计划,该计划采用2D数组形式的初始数据地图,然后生成一张地图,上面标有黄金的所有可能位置。

然而,在计算平均值以确定是否标记探矿点时,我得到一个“System.IndexOutOfRangeException”异常抛出,程序中断。我该如何解决这个问题?感谢您提前提供任何帮助。

for (int i = 1; i < nRows; i++)
        {
            for (int j = 1; j < nCols - 1; j++)
            {
                //it is at the line below where the program breaks
                double average = (data[i - 1, j] + data[i + 1, j] + data[i, j - 1] + data[i, j + 1]) / 4;


                if (data[i, j] > average)
                {
                    map[i, j] = "*";
                }
            }
        }

1 个答案:

答案 0 :(得分:2)

你走出二维阵列的边界。因此,请更改代码的这一部分:

List<PhoneClient> clients = new List<PhoneClient>();
clients = load(); //returns active Clients
lv_clients.ItemsSource = clients;

for (int i = 1; i < nRows; i++)
    {
        for (int j = 1; j < nCols - 1; j++)

所以你省略了边框。