linq in xml (conversione da c # a vb.net)
-
03-07-2019 - |
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();
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