列表框选择项目到数组

时间:2014-05-05 20:34:18

标签: c# listbox

我有一个包含2列的DataTable,名为" ID"和"软件"我用作lst_Software多选列表框的数据源。

我正在尝试收集已选中的所有选定项目的ID,并将其放在int []数组中。

列表框设置:

lst_Software.DataSource = software;  //software is a DataTable
lst_Software.DisplayMember = "Software";
lst_Software.ValueMember = "ID";    

我已尝试过

List<int> list = new List<int>();
for (int i = 0; i < lst_Software.SelectedItems.Count; i++)
{
    list.Add(Convert.ToInt32(lst_Software.SelectedValue.ToString()));
}
int[] software = list.ToArray();

我发现我只获得了第一个选定的值,除了它不会遍历所有...我知道为什么。我没有使用 i 来通过for循环。我希望有人可以给我一个方向来迭代所有选定的值。

谢谢

2 个答案:

答案 0 :(得分:1)

你在循环中使用lst_Software.SelectedValue.ToString()所以它只返回一个项目。你有一个for循环,但你没有使用索引变量。但是,所有这些都是不必要的,实际上你需要的只是;

  var items = lst_Software.SelectItems;

由于该属性已经是所选项目的列表。从那里你可以随意转换/转换它们。

答案 1 :(得分:0)

SelectedValue只是第一个选定的值。您需要使用SelectedItems