2009-04-29 118 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

得到一些高达: 昏暗列表1 =(从X在xd.Descendants( “产品”)_ 。 Select(Function(element)_ New With {.Title = element.Attribute(“title”)。Value}))。ToList() 需要包含'持续时间'..如何? – Sreedhar 2009-04-29 11:25:12

回答

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 2009-04-29 11:29:45

2

如果你正在使用VB,有一些语法糖为:

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

ni ce部分是,如果你的文档有一个xsd(你可以通过从一个或多个xml文档中推断出来创建一个xsd),你可以像导入命名空间那样导入它,Visual Studio会给你一个intellisense编写查询时完成。

一些参考:

+0

什么是CStr功能?不要。@ title返回一个字符串? – CoderDennis 2009-05-15 02:49:56