【问题标题】:Error: Index was outside the bounds of the array错误:索引超出了数组的范围
【发布时间】:2015-04-26 06:43:54
【问题描述】:

当我运行这段代码时,我得到了错误

索引超出了数组的范围。

for (var i = 9; i + 2 < lines.Length; i += 3)
        {
            Items.Add(new ItemProperties { 
                Item = lines[i],
                Description = lines[i + 1],
                Quantity = lines[i + 2],
                UnitPrice = lines[i + 3]

            });
        }

谁能帮帮我,好吗?

【问题讨论】:

  • 那么,你的数组的长度是多少?你确定你的意思是var i = 9
  • 是的,因为还有其他人使用var i = 1- 8
  • 好的,你的数组的总长度是多少?您确定i + 3 不会超出您的数组长度范围吗?
  • 是的,这就是问题所在,应该是i += 4。谢谢

标签: c#


【解决方案1】:

您在循环中使用 lines[i + 3],但您的检查仅确保 i + 2 在范围内 - 并且您在循环中使用 4 值而不是 4看起来应该是这样的:

for (var i = 12; i + 3 < lines.Length; i += 4)
{
    Items.Add(new ItemProperties { 
        Item = lines[i],
        Description = lines[i + 1],
        Quantity = lines[i + 2],
        UnitPrice = lines[i + 3]
    });
}

(假设您想像以前一样从第 4 项开始 - 您应该检查您希望 i 的初始值是什么。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 2014-03-09
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多