2010-11-02 78 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());