2

是否可以在 C# 中将 ListBox.SelectedObjectCollection 转换为 ListBox.ObjectCollection?如果是这样,我会怎么做?

4

5 回答 5

10

我有一个接受List<string>.

我可以通过投射它们来传递 SelectedItems 和 Items。

尝试这个:

SelectedItems.Cast<string>().ToList()
Items.Cast<string>().ToList()

<string>可以用其他一些对象类型替换。

于 2012-09-28T07:19:14.040 回答
4

这是不可能的。

相反,您应该使用IList.
这两种类型都实现了IList,因此您可以将其中任何一种作为 an 传递IList而无需任何显式强制转换。

如果你真的想要,你可以创建一个新ListBox.ObjectCollection的并从SelectedObjectCollection.

于 2010-11-02T03:29:05.210 回答
1

这是我的答案:它对我有用。

System.Windows.Forms.ListBox.SelectedObjectCollection lst  =this.lstImage.SelectedItems;
List<string> selectedItems = new List<string>();

foreach (object obj in lst)
{
    selectedItems.Add(obj.ToString());
}
于 2011-05-04T11:42:19.923 回答
0
  List<YourDataType> YourDataTypeList = new List<YourDataType>();
  for (int i = 0; i < lbVectors.SelectedItems.Count; i++)
   {
        YourDataType v = lbVectors.SelectedItems[i] as YourDataType;
        YourDataTypeList .Add(v);
    }  
于 2012-02-28T06:07:17.277 回答
0

这是我用来将选中列表框转换为列表框的答案

CheckedListBox.CheckedItemCollection s= checkedListBox1.CheckedItems;

        List<object> ns = new List<object>();

        foreach (object ob in s)
        {
            ns.Add(ob);
        }

        listBox1.Items.AddRange(ns.ToArray());
于 2017-03-29T07:35:07.603 回答