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]
}
}
}
我有以下循环:
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]
}
}
}