C# linq到xml(c到vb.net的转换)

C# linq到xml(c到vb.net的转换),c#,vb.net,.net-3.5,linq-to-xml,lambda,C#,Vb.net,.net 3.5,Linq To Xml,Lambda,下面的VB.net语法是什么 var list = xd.Descendants("product") .Select(element =>new { Title = element.Attribute("title").Value, Duration = element.Element("duration").Value }).ToList(); 试试这个: Dim list = Fr

下面的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,并且您可以通过VisualStudio从一个或多个xml文档推断它来创建一个xsd,那么您几乎可以像导入命名空间一样导入它,VisualStudio在编写查询时将为您提供intellisense完成

一些参考资料:


在xd.DegenantsProduct u2;.SelectFunctionelement 2; New中获得了以下内容{.Title=element.Attributetitle.Value}。ToList需要包含“duration”。。如何?谢谢Keiths-它让我知道CStr的功能是什么?元素。@title是否返回字符串?这绝对是真的,我现在不知道为什么要把它放在那里。