Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linq query to list VB.NET

Tags:

.net

vb.net

linq

Dim query = From o In myContainer.MyObjects Select o.MyStringProperty Distinct

Dim myProperties As List(Of String) = query.ToList????? 'no way!!!'

"query" type is IEnumerable(Of String)

I tried to use the query directly as a DataSource of a (infragistic) combobox, but it throws me NullReferenceException, so I decided to convert it to a listof strings, to be a more "classical" datasource.

Dim values As List(Of String) = query.AsQueryable().ToList()

does not work either: Value of type 'System.Collections.Generic.List(Of System.Linq.IQueryable(Of String))' cannot be converted to 'System.Collections.Generic.List(Of String)'.

like image 546
serhio Avatar asked Dec 12 '22 09:12

serhio


1 Answers

Your error message suggests the query is actually a List(Of T) containing a collection internally.

If this is the case, you can use SelectMany to flatten the collection:

Dim values As List(Of String) = query.SelectMany(Function(m) m).ToList()

Edit: Given your edit, as well as the comment, the following should work fine:

Dim values As List(Of String) = query.ToList()
like image 90
Reed Copsey Avatar answered Jan 07 '23 00:01

Reed Copsey