lunedì, luglio 30, 2007

Visual studio 2008 and framework 3.5

In questi giorni sto smanettando con la nuova versione di visual studio e soprattutto con LINQ e le query syntax

per esempio supponiamo di avere una lista di nomi e cognomi in questo formato "cognome nome" e di volere ordinare per nome..
un operazione che può sembrare semplice ma che in realtà è piu complicata del previsto..

utilizzando le query syntax e usando LINQ è possibile risolvere quest' operazione in poche righe ad esempio:


var developers = new String[]{
"Carlesso Cristian",
"Giammarchi Andrea",
"Scott Guthrie"
};

var selections = from dev in developers
orderby dev.Split(' ')[1]
select dev;

gridview1.DataSource = selections;
gridview1.DataBind();

vediamo passo per passo quello che ho fatto:
con

var developers = new String[]{
..
}

ho definito un vettore di 3 stringhe nel formato "cognome nome"
da notare che ho utilizzato var anzichè l' equivalente String[]



var selections = from dev in developers
orderby dev.Split(' ')[1]
select dev;

ecco in tutto il suo splendore la query syntax,
tradotta in italiano equivarebbe a qualcosa come:
per ogni stringa contenuta all' interno di developers creami una variabile temporanea
dev che contiene la stringa, poi ordinami le stringhe in base
alla parte a destra dello split ottenuto considerando spazio come token
e ritornami il risultato all' interno di selections



gridview1.DataSource = selections;
gridview1.DataBind();

con queste 2 istruzioni andiamo a popolare un gridview di una pagina aspx

lanciamo il debug e vediamo in output il seguente risultato:





bello ma non mi piace molto il titolo della colonna della GridView.. Item non ha molto senso dopotutto...
perciò torniamo sul codice e modifichiamo la query in

var selections = from dev in developers
orderby dev.Split(' ')[1]
select new {Developer = dev};


cosi facendo abbiamo rinominato la colonna....

e nel frattempo vi ho mostrato qualcosa che sarà molto più utile in uno dei prossimi post..

1 commento:

kentaromiura ha detto...

e naturalmente scott guthrie
è scritto in Nome Cognome...

errore di distrazione...
:D