2010-11-02 79 views
2

是否有可能将ListBox.SelectedObjectCollection强制转换为C#中的ListBox.ObjectCollection?如果是这样,我会怎么做呢?将ListBox.SelectedObjectCollection投射到ListBox.ObjectCollection?

+1

你到底想干什么? – SLaks 2010-11-02 03:31:29

+1

我有两个相同的方法,只是其中一个接受列表框中的所有项目(“添加所有打印机”),另一个只添加选定项目(“添加选定的打印机”)。我想用重载来实现,而不是通过循环来将值放入数组中,我想知道我是否可以将它们都转换为某种东西。 – ChristianLinnell 2010-11-02 20:15:23

回答

4

这是不可能的。您应该使用IList
这两种类型都实现IList,所以你可以传递任一个作为IList而不需要任何明确的转换。

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

+0

@ 341184答案呢? – Kiquenet 2013-05-04 16:04:40

+0

@Kiquenet:他是_copying_,不是演员。另外,他没有使用ObjectCollection。 – SLaks 2013-05-05 02:15:22

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()); 
} 
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); 
    } 
8

我有一个接受List<string>功能。

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

试试这个:

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

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

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());