Что такое синтаксис VB.net ниже?
var list = xd.Descendants("product")
.Select(element =>new
{
Title = element.Attribute("title").Value,
Duration = element.Element("duration").Value
}).ToList();
Попробуйте следующее:
Dim list =
From element In xd.Descendants("product")
Select New With { _
.Title = element.Attribute("title").Value, _
.Duration = element.Element("duration").Value }
Вам не нужно использовать синтаксис Linq, вы можете просто использовать базовые расширения:
Dim list = xd.Descendants("product"). _
Select(Function(element) _
New With { _
.Title = element.Attribute("title").Value, _
.Duration = element.Element("duration").Value _
}). _
ToList()
Если вы используете VB, для этого есть синтаксический сахар:
Dim list =
From element In xd...<product>
Select New With { _
.Title = element.@title, _
.Duration = element.<duration>.Value }
Хорошей частью является то, что если у вас есть xsd для вашего документа (и вы можете создать его через визуальную студию, выведя его из одного или нескольких XML-документов), вы можете импортировать его почти так же, как и пространство имен и Visual Studio предоставит вам завершение intellisense при написании вашего запроса.
Некоторые ссылки: