2009-04-29 3 views
2

Для чего нужен синтаксис VB.net для?linq to xml (C# to vb.net)

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

Got что-то ДО: Dim list1 = (С х В xd.Descendants ("продукт") _ . Выберите (Функция (элемент) _ Новое с {.Title = element.Attribute ("title"). Значение})). ToList() необходимо включить «продолжительность» .. как ?? – Sreedhar

ответ

1

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

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() 
+0

Спасибо Keiths - он отсортировал меня – Sreedhar

2

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

Dim list = 
    From element In xd...<product> 
    Select New With { _ 
     .Title = [email protected], _ 
     .Duration = element.<duration>.Value } 

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

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

+0

Что такое функция CStr? Не элемент. @ Title возвращает строку? – CoderDennis

+0

Это абсолютно верно, я не понимаю, почему я его там положил. –