为什么我的" foreach" C#代码没有循环遍历listBox中的所有项目?

时间:2015-09-23 13:38:19

标签: c# loops foreach listbox

预期的内容:在列表框中逐个对每个项目执行任务的工具。

正在发生的事情:工具仅对列表框中用户选择的项目执行任务。别无其他。

代码:

 int index;
        string item;
        foreach (int i in listBox1.SelectedIndices)
        {
            index = listBox1.SelectedIndex;
            item = listBox1.Items[index].ToString();
            texteditor.Documents.Open(@item);
        }

2 个答案:

答案 0 :(得分:2)

这应该遍历所有项目

foreach (var item in listBox1.Items)
{
    texteditor.Documents.Open(item.ToString());
}

答案 1 :(得分:1)

您正在迭代所选项目,而您想要对列表框中的所有项目进行交互。

此外,迭代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
 }