C# 代码在此 for 循环之后中断

C# code breaks after this for cycle

我有以下循环:

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 ++;
    }
}

我在这个循环之后有更多的代码,但我用调试器看了它,它没有 运行 下面的代码,for 循环结束后它破坏了整个代码。我在这里做错了什么?我看不出循环有什么问题。

无论如何,谢谢!

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

for (int getnum = 0; getnum < Globais.dep.Length; getnum++)
{
  // ...
}

旁注:您的代码导致了一个 IndexOutOfRangeException,您要么已经注意到,那么您应该在问题中提到它,或者没有,然后某些东西将它隐藏起来,就像一个空 try...catch这通常是个坏主意。

我想,您可以像下面这样使用 foreach 循环

if(Globais.dep.Length > 0)
{
  string[] sfind = new string[Globais.dep.Length];
  foreach (string str in Globais.dep)
     {
        if (str.Contains(items[1]))
        {
           sfind[str]
        }
     }
}