为什么是我的“foreach”?c#代码不会循环遍历listBox中的所有项
本文关键字:listBox 遍历 循环 我的 foreach 代码 为什么 | 更新日期: 2023-09-27 18:14:24
期望是什么:工具在每个项目上执行任务,在列表框中一个接一个。
发生了什么:工具只对列表框中用户选择的项执行任务。没有别的了。
代码: int index;
string item;
foreach (int i in listBox1.SelectedIndices)
{
index = listBox1.SelectedIndex;
item = listBox1.Items[index].ToString();
texteditor.Documents.Open(@item);
}
这应该遍历所有项
foreach (var item in listBox1.Items)
{
texteditor.Documents.Open(item.ToString());
}
您正在对选定的项进行迭代,而您希望对列表框中的所有项进行迭代。
同样,迭代ListBox的正确方法是返回ListItem而不是int。
试试这个:
string item;
foreach (ListItem li in listBox1.Items)
{
item = li.ToString();
texteditor.Documents.Open(@item);
}
我还从你的代码中删除了索引变量。如果您需要其他内容的索引,则需要像这样的for循环:
string item;
for (int index = 0; index < listBox1.Items.Count; index++) {
item = listBox1.Items[index].ToString();
texteditor.Documents.Open(@item);
// do something with index
}