不能动态地给list添加双值,System.ArgumentOutOfRangeException

本文关键字:System ArgumentOutOfRangeException 添加 list 不能动 动态 不能 | 更新日期: 2023-09-27 18:04:21

我总是得到以下错误:

"系统。ArgumentOutOfRangeException '

我正在从PLC动态接收双输入。我无法将输入保存在列表中。我不知道为什么。有人能帮忙吗?

string str = stringArray[1];
double value = double.Parse(str, CultureInfo.InvariantCulture);
List<double> list = new List<double>();
List<double> result = new List<double>();
while (true)
{
    int i;
    for (i = 1; i < 3 - 1; ++i)
    {
        list.Add(value);
        result[i] = (list[i - 1] + list[i] + list[i + 1]) / 3; //The error is here
        dataHub.ServerTemp(result);
    }
}

不能动态地给list添加双值,System.ArgumentOutOfRangeException

for (i = 1; i < 3 - 1; ++i)

本质上与i = 1相同(从1开始,但不要到2)

所以你的代码要做的是:

  1. list
  2. 列表中添加一个double (value)
  3. 更新列表result中的第二项(第一个问题,result初始为空),取list中第一项,第二项和第三项的平均值(第二个问题- list有一个元素)。

result[i]不存在。这就是为什么你得到超出范围的错误