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

VB 2008 SP 1: ordinamento dei tipi anonimi

Se avete utilizzato almeno qualche volta LINQ in Visual Basic 2008 prima dell'avvento del Service Pack 1, ottenendo tipi anonimi come risultati delle query, vi sarà sicuramente capitato di notare che l'ordinamento delle proprietà di ciascun tipo anonimo avveniva in modo alfabetico, indipendentemente da come avveniva la proiezione. Per essere più chiaro e comprensibile, considerate il seguente banale frammento di codice:

        Dim query = From proc In Process.GetProcesses _

                    Select proc.ProcessName, proc.Id, proc.BasePriority

Tramite la clausola Select, proiettiamo in una collezione di tipi anonimi il nome del processo e l'Id di ciascun oggetto Process. Se avessimo fatto il binding della variabile query (che è di tipo IEnumerable(Of anonymous type)) verso una DataGridView, giusto per capirci, il compilatore avrebbe deliberatamente sistemato le colonne nell'ordine alfabetico BasePriority, Id e ProcessName, quindi in modo diverso dall'ordine di proiezione. Peraltro, questo non avveniva in C#, come al solito, ma questo è un altro discorso.

Fortunatamente col rilascio del Service Pack 1 le cose sono cambiate e ora il compilatore ordina le colonne proprio in base all'ordine della scelta delle proprietà tramite Select (quindi, ProcessName, Id e BasePriority). Questo sì che a mio avviso è un fix molto importante.

Fonte: ThinkLinq.

Alessandro

Print | posted on martedì 2 settembre 2008 18:37 | Filed Under [ Visual Basic LINQ ]

Powered by:
Powered By Subtext Powered By ASP.NET