从 class 个对象列表中显示 listBox.SelectedItems

Show listBox.SelectedItems from a list of class objects

我有一个包含两个成员(名称和值)的 class。然后我制作了一个从文本文件中填充的 class 对象的列表,因此我在 name 中得到了文本文件中的名称,在 val 中得到了值。然后使用此列表制作一个 listbox,我在其中显示所有名称。

我想做的是 select 从 listbox 中选择多项(名称),然后将所有这些 val 存储在另一个列表中。这可能吗?

我试过 SelectedItems 但似乎只存储了 class 对象本身。出于某种原因,尽管如此:

foreach (object selectedItem in listBox1.SelectedItems)
{
    textBox1.AppendText(listBox1.SelectedValue.ToString() + Environment.NewLine);
}

显示 selected 项的第一个值。如果我 select 三个名字,其中第一个的值为 4,结果是 4 4 4

您需要使用 "two members" 将 selectedItem 转换为您的 class。然后你可以选择 Value:

foreach (object selectedItem in listBox1.SelectedItems)
{
    MyClass item = (MyClass)selectedItem
    textBox1.AppendText(item.Value.ToString() + Environment.NewLine);
}

If I select three names and the first of these has a value of 4 the result is 4 4 4

发生这种情况是因为您没有使用循环中的迭代变量,但您始终使用相同的 listBox1.SelectedValue!这将是多选项目列表中的第一个