错误:索引超出了数组的范围

Joh*_*n.P 5 c#

当我运行此代码时,我收到错误

指数数组的边界之外.

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]

            });
        }
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?

Jon*_*eet 4

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]
    });
}
Run Code Online (Sandbox Code Playgroud)

(假设您想像以前一样从第四项开始 - 您应该检查您想要的初始值i。)