Oggi voglio illustrarvi un metodo molto facile, utile e veloce per ordinare una lista.
In particolari casi, abbiamo bisogno di avere una lista ordinata in base ad un numero crescenete.
La situazione può essere facile, se i dati vengono inseriti in ordine.
esempio
1 Ciao
1 Ciao (Duplicato)
2 Come
3 Stai?
3 Stai? (Duplicato)
Ma se per un problema anomalo ci ritroveremo con un qualcosa del genere?
3 Stai?
1 Ciao
2 Come
1 Ciao (Duplicato )
3 Stai? (Duplicato)
Anziché crearci un ciclo, e scorrere elemento per elemento per poi ordinali,
verificare eventuali duplicati etc, in questo esempio utilizzeremo il LinQ. Che ci aiuterà molto in questo problema.
In primo lugo, questo sistema e molto utile se noi abbiamo una struttura, e non una semplice lista.
Ordinare una semplicissima lista ci basterebbe utilizzare il metodo Sort().
Ma se abbiamo una struttura le cose cambiano.
1) Eliminazione dei Duplicati.
struct Prova { public string Nome; public int ID; } List prova = new List<Prova>(); prova = prova.Distinct().ToList<Prova>();
2) Ordiniamo con il LinQ
var ordinati = from Prova in prova orderby Prova.ID select Prova; //Forziamo il compilatore a determinare che la variabile ordinati è una lista prova = ordinati.ToList<Prova>();
La nostra lista adesso è pronta, previa di duplicati ed ordinata correttamente.
Aggiungi un commento