Приведение коллекции ListBox.SelectedObjectCollection к коллекции ListBox.ObjectCollection? - PullRequest
2 голосов
/ 02 ноября 2010

Можно ли преобразовать ListBox.SelectedObjectCollection в ListBox.ObjectCollection в C #? Если так, как бы я поступил об этом?

Ответы [ 5 ]

9 голосов
/ 28 сентября 2012

У меня есть функция, которая принимает List<string>.

Я могу передать и SelectedItems и Предметы, разыгрывая их.

Попробуйте это:

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

<string> можно заменить другим типом объекта.

4 голосов
/ 02 ноября 2010

Это невозможно.

Вместо этого вы должны использовать IList.
Оба эти типа реализуют IList, поэтому вы можете передать любой из них как IList без явногокастинг.

Если вы действительно хотите, вы можете создать новый ListBox.ObjectCollection и добавить предметы из SelectedObjectCollection.

1 голос
/ 04 мая 2011

Вот мой ответ: он работает для меня.

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 голосов
/ 29 марта 2017

Это мой ответ, который я использовал для преобразования поля Проверено в поле списка

CheckedListBox.CheckedItemCollection s= checkedListBox1.CheckedItems;

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

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

        listBox1.Items.AddRange(ns.ToArray());
0 голосов
/ 28 февраля 2012
  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);
    }  
...