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:
e naturalmente scott guthrie
è scritto in Nome Cognome...
errore di distrazione...
:D
Posta un commento