Ordinare una lista di oggetti con LINQ
Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /var/www/web2/html/mondoinformatico.info/nuovo/wp-content/plugins/paginated-comments/paginated-comments.php(475) : eval()'d code on line 50
Continuo i miei articoli su LINQ, il nuovo linguaggio sviluppato da Microsoft e rilasciato con le ultime versioni del framework .NET, presentando un semplice esempio di ordinamento di una lista di oggetti.
L’ordinamento di una lista è una cosa molto comune in programmazione ed esistono diversi algoritmi per implementarlo. Quello che voglio mostrarvi oggi sfrutta la sintassi SQL-like di LINQ per effettuare l’ordinamento in una sola istruzione.
Per l’esempio definiamo una classe Automobile:
public class Automobile
{
public Automobile(mod, cil)
{
this.modello = mod;
this.cilindrata = cil;
}
public string modello { get; set; }
public string cilindrata { get; set; }
}
Popoliamo ora una lista di automobili
List lstAuto = new List();
Automobile a1 = new Automobile("fiat punto", "1.3");
Automobile a2 = new Automobile("opel corsa", "1.2");
Automobile a3 = new Automobile("audi A3", "2.0");
Automobile a4 = new Automobile("volkswagen golf", "1.9");
lstAuto.add(a1);
lstAuto.add(a2);
lstAuto.add(a3);
lstAuto.add(a4);
Infine vediamo come ordinare questa lista, nel nostro esempio faremo un ordinamento per cilindrata:
var ordinati = from auto in lstAuto
order by auto.cilindrata ascending
select auto;
Svuoto e riempio nuovamente la lista con i valori ordinati:
lstAuto.Clear();
foreach(Automobile auto in ordinati)
lstAuto.add(auto);
Come potete vedere l’ordinamento della lista viene gestito dalla query LINQ e può essere fatto in modo ascendente o discendente tramite le keyword ascending e descending.
Risulta inoltre molto semplice effettuare un ordinamento in funzione di una (o più) proprietà dell’oggetto.






Non ci sono commenti
Non ci sono commenti per questo articolo