c#: For循环不迭代

本文关键字:迭代 循环 For | 更新日期: 2023-09-27 18:15:48

我有一个for循环,对于列表框中的每个项目,它将执行一个sub。奇怪的是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");
}

c#: For循环不迭代

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

如果你的listBox1包含多于一个项目,一个异常将总是在下一行抛出:

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

,因为不再有选择项。

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

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

listBox7.SelectedIndex = 0;

在for循环内,在

行上方
sub1();