2013-12-06 7 views
2

У меня есть список (возвращенный из базы данных), и у меня есть поле со списком, которое я заполняю списком, я делаю это, потому что ComboBox может быть заполнен из ряда источников данных.Преобразовать IList <Object> в список <String>

Мне нужно преобразовать IList(Of Object) в List(Of String).

Object имеет переопределение по методу ToString.

Возможно, кто-нибудь посоветует об этом?

ответ

1

Если у вас есть IList(Of Object), например:

Dim objects As IList(Of Object) = New List(Of Object)({"test", "test2"}) 

Вы можете добавить элементы в этом списке на ComboBox, непосредственно, как это:

ComboBox1.Items.AddRange(objects.ToArray()) 

Там нет необходимости в первую конвертировать его в List(Of String), так как ComboBox автоматически вызывает метод ToString для каждого элемента в списке. Однако, если вам действительно нужно, чтобы преобразовать его в List(Of String), вы можете сделать это следующим образом:

Dim strings As List(Of String) = objects.Select(Function(x) x.ToString()).ToList() 

Или, если вы не хотите использовать методы расширения LINQ, вы могли бы сделать это старомодный Кстати, как это:

Dim strings As New List(Of String)() 
For Each i As Object In objects 
    strings.Add(i.ToString()) 
Next 
+0

Привет, спасибо за ваш ответ. Мне нужно перейти к списку строк до заполнения, потому что Combo Box можно заполнить из объектов базы данных или результатов веб-вызова. –

+0

К сожалению, по какой-то причине я думал, что вы сказали «ListBox». Я обновил свой ответ для 'ComboBox'. Те же принципы применяются. Помогло ли это решение для вас, или у вас все еще был вопрос? –

1

Использование LINQ:

Private Function ConvertToListOfString(lstObject As IList(Of Object)) As List(Of String) 
     Return lstObject.Select(Function(e) e.ToString()).ToList() 
    End Function 
Смежные вопросы