linq в xml (преобразование c # в vb.net) - PullRequest
2 голосов
/ 29 апреля 2009

Для чего нужен синтаксис VB.net ниже?

   var list = xd.Descendants("product")
   .Select(element =>new 
   { 
      Title = element.Attribute("title").Value,                   
      Duration = element.Element("duration").Value 
   }).ToList(); 

Ответы [ 2 ]

2 голосов
/ 29 апреля 2009

Если вы используете VB, для этого есть синтаксический сахар:

Dim list = 
   From element In xd...<product>
   Select New With { _ 
       .Title = element.@title, _
       .Duration = element.<duration>.Value }

Приятной особенностью является то, что если у вас есть xsd для вашего документа (и вы можете создать его с помощью Visual Studio, выводя его из одного или нескольких XML-документов), вы можете импортировать его почти так же, как и пространство имен и Visual Studio при написании запроса даст вам завершение intellisense.

Некоторые ссылки:

1 голос
/ 29 апреля 2009

Попробуйте это:

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()
...