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");
}
您很可能会删除内部while语句中的所有项,在第二次循环中没有留下任何可迭代的内容。
如果你的listBox1包含多于一个项目,一个异常将总是在下一行抛出:
listBox1.Items.Add(listBox7.SelectedItem.ToString() + "'r");
,因为不再有选择项。
这就是为什么异常处理,即使你只是在测试一些东西,是至关重要的。
如果您的目标是处理listBox7中的每个项目,那么您可以通过移动以下行来实现此目标:
listBox7.SelectedIndex = 0;
在for循环内,在
行上方sub1();