Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

LINQ-to-Xml: parsing di attributi booleani e Integer con VB 2008

Non so se vi è mai capitato di utilizzare LINQ-to-Xml per interrogare documenti contenenti elementi contraddistinti da attributi di tipo booleano, quindi con valore True o False. Sostanzialmente, in una situazione di questo tipo il valore dell’attributo è considerato come stringa ma può essere interpretato come boolean tramite una semplice operazione di parsing.

 

Consideriamo il seguente documento Xml riportante un elenco di prodotti aziendali:

 

  <Product CategoryID="2" Discontinued="true" ProductID="5" ProductName="Chef          

           Anton's Gumbo Mix"></Product>

  <Product CategoryID="2" Discontinued="false" ProductID="6"

           ProductName="Grandma's Boysenberry Spread"></Product>

  <Product CategoryID="7" Discontinued="false" ProductID="7" ProductName="Uncle

           Bob's Organic Dried Pears"></Product>

  <Product CategoryID="2" Discontinued="false" ProductID="8"

           ProductName="Northwoods Cranberry Sauce"></Product>

  <Product CategoryID="6" Discontinued="true" ProductID="9" ProductName="Mishi

           Kobe Niku"></Product>

 

Ci potrebbe interessare ottenere il valore dell’attributo Discontinued considerandolo come Boolean, in ottica managed. Quindi, ipotizzando di scrivere codice Visual Basic 2008 utilizzando LINQ per ottenere i soli prodotti il cui attributo Discontinued sia impostato come False, potremmo scrivere la sequente query:

 

        Dim query = From elemento In doc...<Product> _

                    Where Boolean.Parse(elemento.@Discontinued) = False _

                    Select elemento.@ProductName, Integer.Parse(elemento.@ProductID)

 

Quindi il metodo Parse dell’oggetto Boolean ci permette di interpretare il valore dell’attributo Discontinued come tipo booleano e non più come semplice stringa. Stesso dicasi, ad esempio, per l’oggetto Integer che espone un identico metodo che, nel caso di specie, ci permette di ottenere come intero (e non come stringa) il valore degli attributi CategoryID e ProductID.

La nostra query restituisce una IEnumerable(Of anonymous type) che può essere iterata o assegnata come sorgente dati a elementi dell’interfaccia che supportino il binding.

 

Alessandro

Print | posted on giovedì 21 agosto 2008 03:21 | Filed Under [ Visual Basic LINQ ]

Powered by:
Powered By Subtext Powered By ASP.NET