C# 如何获取列表框中所有选定项的数组?

C# 如何获取列表框中所有选定项的数组?,c#,winforms,C#,Winforms,我有一个列表框,它列出了目录中的所有.mp3文件。该程序允许用户选择一些.mp3文件,并轻松编辑ID3标签(文件属性-如艺术家、专辑、标题等)。但是,我找不到一种方法来获取用户选择的所有项目的数组,而不是一个 我已经了解了如何获取一个选定项(listBox.SelectedValue),但在使用选择模式属性的MultiSimple时,我通常会有多个选定项(允许我选择多个项,而不仅仅是一个)。就我所见,没有办法做类似于listBox.SelectedValue[2]或listBox.Item.In

我有一个
列表框
,它列出了目录中的所有
.mp3
文件。该程序允许用户选择一些
.mp3
文件,并轻松编辑ID3标签(文件属性-如艺术家、专辑、标题等)。但是,我找不到一种方法来获取用户选择的所有项目的数组,而不是一个

我已经了解了如何获取一个选定项(
listBox.SelectedValue
),但在使用选择模式属性的
MultiSimple
时,我通常会有多个选定项(允许我选择多个项,而不仅仅是一个)。就我所见,没有办法做类似于
listBox.SelectedValue[2]
listBox.Item.IndexOf(2).Selected()的事情

string[]selectedItems=新字符串[allMusicBox.selectedItems.Count];
//已将多少项添加到选定项数组的计数
int addedSelectedItems=0;
对于(int i=0;i

那里的代码实际上不起作用,但这正是我想要的。我想知道如何检查该项(位于“I”位置)是否已选中,如果已选中,则将其添加到“selectedItems”数组。

selectedItems
属性是所有选定项的集合。您不需要遍历所有项目来查看它们是否被选中,因为您只需使用
allMusicBox.SelectedItems


如果确实需要将集合转换为列表,请查看此问题/答案,因此我认为您需要查看SelectedItems属性:

    foreach (var item in listBox1.SelectedItems)
    {
        Console.WriteLine(item);
    }

要获取所有选定项目的文本:
allMusicBox.SelectedItems.Cast().Select(x=>allMusicBox.GetItemText(x)).ToArray()
    foreach (var item in listBox1.SelectedItems)
    {
        Console.WriteLine(item);
    }