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)'.
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()
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.
Finally, solved with good old method : )
Dim values As New List(Of String)
For Each item In query
values.Add(item)
Next item
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.