for循环中双精度数组的索引超出范围[重复]

Posted

技术标签:

【中文标题】for循环中双精度数组的索引超出范围[重复]【英文标题】:Index out of range for a double array in a for loop [duplicate] 【发布时间】:2021-05-02 13:07:26 【问题描述】:

我是 C# 的初学者。无论我为以下代码尝试了什么,我都会得到 Index out of range 异常:

    double[,] mysine = new double[0, NumPoints];

    double s = (2 * Math.PI) / NumPoints;

    for (int i = 0; i < NumPoints; i++)
    
        mysine[0, i] = Math.Sin(i * s) + 1;
    

数组大小为 NumPoints,我的循环从零循环到 (NumPoints-1),这不会出错。我也尝试了其他事情,但无法解决。我还有什么错吗?

【问题讨论】:

double[0, X] 如果大小为 0 则 ... 确实,0是一个“空”维度,没有维度,什么都没有,不存在,大小为0,不允许有数据。但是new double mysine[1, NumPoints] 是一个one x NumPoints 矩阵,其中 D1 = 1 个项目,D2 = NumPoints 个项目是大小,所以项目的总数是 1 x NumPoints。也就是说,它只是一个一维数组……所以可以简化,否则这里需要超过 1 个。 为了帮助您提高技能,请查看 C# Tag Wiki 和 Learn C# from Microsoft 以及在线教程和专业书籍。 【参考方案1】:
double[,] mysine = new double[0, NumPoints];

应该是

double[,] mysine = new double[1, NumPoints];

括号之间的数字定义数组的大小,而不是最大索引。 所以当使用 0 时,实际上是在定义一个不可用的数组。

【讨论】:

以上是关于for循环中双精度数组的索引超出范围[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从数组中删除重复项时出现超出范围异常

为啥我的 UICollectionView 无法访问我在 for 循环中创建的数组 - 致命错误:索引超出范围

在python IndexError中使用for循环反转字符串:字符串索引超出范围[重复]

Python for 循环:“列表索引超出范围”错误?

简单python for循环上的列表索引超出范围错误

索引超出了数组拆分函数的范围[重复]