c#for循环错误的迭代次数

Kia*_*tis 2 c# iteration for-loop

我正在编写一个迭代string []数组的函数,并将一些对象添加到列表中.它是加载已保存游戏系统的一部分.它还有很多bug,因为我写了很多代码,然后才能测试它们.但在这个调试阶段,我发现了一些奇怪的错误,无法解释或修复.
我无法访问一些数据.如果我有原始代码,for循环迭代少于需要1次.如果我向迭代器限制添加+1,它会正常运行.总而言之,我可以迭代-1或+1次,但不能满足我的需要.
这是原始代码,迭代次数少于预期:

string str = " start at " + Convert.ToInt32(s[k]) + " " + k;
        for (int i = 0; i < Convert.ToInt32(s[k]); i++)
        {
            k++;
            landOwned.Add(setle.civil.land[Convert.ToInt32(s[k]), Convert.ToInt32(s[k+1])]);
            k++;
            str += "  iteration "+i + " finish " + k;
        }
        throw new ArgumentException(str);
Run Code Online (Sandbox Code Playgroud)

这是文本文件中的行:

f 4894 0 250 -523058 0 0 0 0 0 0 0 0 0 0 0 0 0 35 35 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 3 4 2 4 3 3 4 4 1 0 1 0 1 0 1 2
Run Code Online (Sandbox Code Playgroud)

以下是捕获的exeptions的屏幕截图:

在此输入图像描述

com*_*ech 6

问题是循环结束测试(k)中使用的变量在循环内递增.

将循环更改为以下应解决问题:

    var endIndex = Convert.ToInt32(s[k]);
    for (int i = 0; i < endIndex; i++)
Run Code Online (Sandbox Code Playgroud)