Domanda

Qual è la sintassi di VB.net qui sotto per?

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

Soluzione

Prova questo:

Dim list = 
   From element In xd.Descendants("product")
   Select New With { _ 
       .Title = element.Attribute("title").Value, _
       .Duration = element.Element("duration").Value }

Non è necessario utilizzare la sintassi Linq, puoi semplicemente usare le estensioni sottostanti:

Dim list = xd.Descendants("product"). _
    Select(Function(element) _ 
        New With { _ 
           .Title = element.Attribute("title").Value, _
           .Duration = element.Element("duration").Value _
        }). _
    ToList()

Altri suggerimenti

Se stai usando VB, c'è dello zucchero sintattico per questo:

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

La parte interessante è che, se hai un xsd per il tuo documento (e puoi crearne uno tramite Visual Studio deducendolo da uno o più documenti XML), puoi importarlo quasi come faresti con uno spazio dei nomi e Visual Studio ti darà il completamento di intellisense quando scrivi la tua query.

Alcuni riferimenti:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top