Linq query to list VB.NET
Solution 1
Finally, solved with good old method : )
Dim values As New List(Of String)
For Each item In query
values.Add(item)
Next item
Solution 2
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()
Solution 3
Perhaps you should try to specify the type on the query variable?
Dim query = From o In myContainer.MyObjects Select o.MyStringProperty Distinct
Should become
Dim query As IEnumerable(Of String) = From o In myContainer.MyObjects Select o.MyStringProperty Distinct
If the type of IEnumerable(Of String) can't be used on query, then you need to flatten the list as Reed Copsey said.
serhio
I like .NET and started learning PHP. email: gserhio[at]gmail[.]com
Updated on July 09, 2022Comments
-
serhio almost 2 years
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)'.