Ладно, я должен что-то здесь упустить.
Каждый пример LINQ, который я видел для анонимных типов VB.NET, утверждает, что я могу сделать что-то вроде этого:
Dim Info As EnumerableRowCollection = pDataSet.Tables(0).AsEnumerable
Dim Infos = From a In Info _
Select New With {
.Prop1 = a("Prop1"),
.Prop2 = a("Prop2"),
.Prop3 = a("Prop3") }
Теперь, когда я перебираю коллекцию (см. Пример ниже), я получаю ошибку, в которой говорится, что «Имя» x не объявлено.
For Each x in Infos
...
Next
Как будто VB.NET не понимает, что Infos - это коллекция анонимных типов, созданных LINQ, и хочет, чтобы я объявил "x" как некоторый тип. (Не противоречит ли это цели анонимного типа?) Я добавил ссылки на System.Data.Linq и System.Data.DataSetExtensions в мой проект. Вот что я импортирую с классом:
Imports System.Linq
Imports System.Linq.Enumerable
Imports System.Linq.Queryable
Imports System.Data.Linq
Есть идеи?