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: utilizzo di condizioni con le clausole Skip e Take

In un precedente post abbiamo visto l’utilizzo delle clausole Skip e Take di LINQ per escludere o includere indiscriminatamente un determinato numero di elementi nel risultato di una query.

In questo post vediamo come aggiungere una condizione secondo cui gli elementi debbano essere esclusi dal risultato. Considerate la seguente riga di codice che ottiene l’elenco dei processi attivi:

        Dim elencoProcessi = Process.GetProcesses

 

Da tale elenco vogliamo escludere quelli il cui codice identificativo sia rappresentato da un numero inferiore a 5000. Tale obiettivo si raggiunge con la seguente query expression:

        Dim risultato = From processo In elencoProcessi _

                        Order By processo.Id Ascending _

                      Skip While processo.Id < 5000

 

        For Each r In risultato

            Console.WriteLine("{0}, {1}", r, r.Id.ToString)

        Next

 

        Console.Read()

 

In questo caso abbiamo dapprima ordinato l’insieme in senso ascendente (quindi dal valore più basso al più alto). Quindi, utilizzando congiuntamente le keyword Skip e While, abbiamo stabilito che finchè il valore del codice ID del processo è inferiore a 5000, non va incluso nel risultato della query.

Per converso, utilizzando in maniera identica la keyword Take al posto di Skip produrrà come risultato l’inclusione nel risultato della query dei soli processi il cui codice ID è inferiore a 5000.

Alessandro

Print | posted on lunedì 24 marzo 2008 01:59 | Filed Under [ Visual Basic LINQ ]

Powered by:
Powered By Subtext Powered By ASP.NET