此循环后C#代码中断

jey*_*jow -2 c# for-loop break

我有以下循环:

string[] sfind = new string[Globais.dep.Length];
int udt = 0;
for (int getnum = 0; getnum <= Globais.dep.Length; getnum++)
{
    if (Globais.dep[getnum].Contains(items[1]))
    {
        sfind[udt] = Globais.dep[getnum];
        udt ++;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有更多的代码遵循这个循环,但我用调试器观察它并且它不运行下面的代码,在for循环结束后它会破坏整个代码.我在这做错了什么?我没有看到周期的问题.

无论如何,谢谢!

Tim*_*ter 8

列表或数组索引器从0开始并以长度为1结束,但您正在使用getnum <= Globais.dep.Length,<而不是使用<=:

for (int getnum = 0; getnum < Globais.dep.Length; getnum++)
{
  // ...
}
Run Code Online (Sandbox Code Playgroud)

旁注:你的代码引起了IndexOutOfRangeException你注意到的一个问题,然后你应该在问题中提到它,或者没有,然后有些东西将它隐藏起来,try...catch这通常是一个坏主意.