Ordinare una lista di oggetti con LINQ



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.

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest