LINQ permette di eseguire query non solo su liste di oggetti in memoria, ma anche su documenti o stringhe in formato XML. Questa caratteristica prende il nome di LINQ To XML. LINQ To XML, a differenza di LINQ To Objects, non è tipizzato e quindi ha un modello di interrogazione leggermente meno evoluto in termini di intellisense.
In questo esempio, viene preso un documento xml contenente degli ordini con il codice cliente ed il totale e viene effettuato un filtro per codice cliente. Per prima cosa, si carica un oggetto XDocument con la stringa xml e poi si scorrono gli elementi Order all'interno dell'elemento Orders. per ognuno di questi elementi, viene controllato che il sottoelemento CustomerID abbia valore "ALFKI". Alla fine viene tornata una lista di oggetti anonimi, che corrispondono alla condizione, con il codice del cliente ed il total dell'ordine.
var xml = "<Orders>" +
"<Order>" +
"<CustomerID>QUICK</CustomerID>" +
"<Price>1000</Price>" +
"</Order>" +
"<Order>" +
"<CustomerID>ALFKI</CustomerID>" +
"<Price>1000</Price>" +
"</Order>" +
"<Order>" +
"<CustomerID>ALFKI</CustomerID>" +
"<Price>250</Price>" +
"</Order>" +
"</Orders>";
var q = from el in XDocument.Parse(xml).Element("Orders").Elements("Order")
where (string)el.Element("CustomerID").Value == "ALFKI"
select new { CustomerID = (string)el.Element("CustomerID"), Price = (string)el.Element("Price")};
lv.DataSource = q;
lv.DataBind();Per approfondimenti si veda:
Introduzione a LINQ
https://www.winfxitalia.com/articoli/netfx3.5/linq.aspx
#36 - Ritornare un solo valore da una query LINQ con il metodo Single
https://www.winfxitalia.com/script/36/Ritornare-Valore-Query-LINQ-Metodo-Single.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Mischiare codice server side e client side in una query LINQ con Entity Framework
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Sfruttare una CDN con i bundle di ASP.NET
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Le DirectInk API nella Universal Windows Platform
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Gli oggetti CallOut di Expression Blend 4.0
- Esaminare documenti XML con namespace utilizzando LINQ to XML


