C#:用于循环不迭代

C#:用于循环不迭代,c#,for-loop,iteration,loops,C#,For Loop,Iteration,Loops,我有一个for循环,对于列表框中的每个项目,它都会执行一个子循环。奇怪的是for循环根本没有迭代。我不得不强制它迭代到第一个项目,但在完成该项目的所有子项目之后,它就停止了 如何使列表框中的每一项都不断迭代 这是我的密码: listBox7.SelectedIndex = 0; for (int i = 0; i < listBox7.Items.Count; i++) { sub1(); sub2(); listBox1.Items.Add(listBox7.

我有一个for循环,对于列表框中的每个项目,它都会执行一个子循环。奇怪的是for循环根本没有迭代。我不得不强制它迭代到第一个项目,但在完成该项目的所有子项目之后,它就停止了

如何使列表框中的每一项都不断迭代

这是我的密码:

listBox7.SelectedIndex = 0;

for (int i = 0; i < listBox7.Items.Count; i++)
{
    sub1();
    sub2();

    listBox1.Items.Add(listBox7.SelectedItem.ToString() + "\r");

    while (listBox7.SelectedItems.Count > 0)
    {
        listBox7.Items.Remove(listBox7.SelectedItems[0]);
    }

    webBrowser1.Navigate("http://www.google.com");
}
listBox7.SelectedIndex=0;
对于(int i=0;i0)
{
listBox7.Items.Remove(listBox7.SelectedItems[0]);
}
webBrowser1.导航(“http://www.google.com");
}

您很可能删除了内部while语句中的所有项,在第二遍中没有留下任何可重复的内容

如果listBox1包含多个项,则将始终在以下行引发异常:

listBox1.Items.Add(listBox7.SelectedItem.ToString() + "\r");
listBox7.SelectedIndex = 0;
因为不再有选定的项目

这就是为什么异常处理,即使您只是在测试某些东西,也是至关重要的

如果您的目标是处理listBox7中的每一项,则可以通过移动以下行来实现:

listBox1.Items.Add(listBox7.SelectedItem.ToString() + "\r");
listBox7.SelectedIndex = 0;
在for循环内部,在该行上方

sub1();

您很可能删除了内部while语句中的所有项,在第二遍中没有留下任何可迭代的内容

如果listBox1包含多个项,则将始终在以下行引发异常:

listBox1.Items.Add(listBox7.SelectedItem.ToString() + "\r");
listBox7.SelectedIndex = 0;
因为不再有选定的项目

这就是为什么异常处理,即使您只是在测试某些东西,也是至关重要的

如果您的目标是处理listBox7中的每一项,则可以通过移动以下行来实现:

listBox1.Items.Add(listBox7.SelectedItem.ToString() + "\r");
listBox7.SelectedIndex = 0;
在for循环内部,在该行上方

sub1();


您确定
listBox7.Items.Count
大于0吗?您的循环应该做什么?它从不使用
i
,只使用
SelectedItem
——这些都是非常不同的。您是否使用
SelectedIndex
/
SelectedItem
listBox7
上迭代?不要这样做。另外,重命名您的列表框,使其具有有意义的名称是否更改sub1或sub2上的listBox7项目选择?@DarthVader是的,我可以将项目输入到listBox7中是否确定
listBox7.items.Count
大于0?循环应该做什么?它从不使用
i
,只使用
SelectedItem
——这些都是非常不同的。您是否使用
SelectedIndex
/
SelectedItem
listBox7
上迭代?不要这样做。另外,重命名您的列表框,使其具有有意义的名称您是否更改了sub1或sub2上的listBox7项目选择?@DarthVader是的,我可以将项目输入到listBox7中,如果在listBox7中选择了所有项目,则会出现这种情况。如果不是的话,循环当然会执行,但不会做任何事情…@Ajai:的确;这就是为什么我用“最有可能”来限定这个陈述。但这种情况与OP报告的问题相符。@Competable\u tech我不认为是因为没有选择所有项目,只是1@user1017524:用更多的注释更新了我的答案。@competent\u tech奇怪,我把它放在for循环中,但是,一旦第一项完成,它就停止了。我是否应该将listBox7.SelectedIndex=0;在sub的上方和循环的末尾?如果在listbox7中选择了所有项目,则会出现这种情况。如果不是的话,循环当然会执行,但不会做任何事情…@Ajai:的确;这就是为什么我用“最有可能”来限定这个陈述。但这种情况与OP报告的问题相符。@Competable\u tech我不认为是因为没有选择所有项目,只是1@user1017524:用更多的注释更新了我的答案。@competent\u tech奇怪,我把它放在for循环中,但是,一旦第一项完成,它就停止了。我是否应该将listBox7.SelectedIndex=0;在接头上方和回路末端?