c# collections casting listboxitems

c# - ¿Lanzando un ListBox.SelectedObjectCollection a un ListBox.ObjectCollection?



collections casting (5)

¿Es posible lanzar un ListBox.SelectedObjectCollection a un ListBox.ObjectCollection en C #? Si es así, ¿cómo lo haré?


Esto no es posible.

En cambio, debes usar un IList .
Ambos tipos implementan IList , por lo que puede pasar cualquiera como IList sin ninguna conversión explícita.

Si realmente lo deseaba, podría crear una nueva ListBox.ObjectCollection y agregar los elementos de SelectedObjectCollection .


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


Tengo una función que acepta List<string> .

Puedo pasar tanto Selected Items como Items lanzándolos.

Prueba esto:

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

<string> podría reemplazarse con algún otro tipo de objeto.


Aquí está mi respuesta: está funcionando para mí.

System.Windows.Forms.ListBox.SelectedObjectCollection lst =this.lstImage.SelectedItems; List<string> selectedItems = new List<string>(); foreach (object obj in lst) { selectedItems.Add(obj.ToString()); }


Esta es mi respuesta que usé para convertir el cuadro de lista Comprobado en el cuadro de lista

CheckedListBox.CheckedItemCollection s= checkedListBox1.CheckedItems; List<object> ns = new List<object>(); foreach (object ob in s) { ns.Add(ob); } listBox1.Items.AddRange(ns.ToArray());