Rendere univoci gli elementi di una lista con la clausola Distinct di LINQ

di , in LINQ, UserScript,

Tra le operazioni più frequenti quando si utilizzano le collection, c'è quella di voler visualizzare solo una volta gli elementi doppi. In questo script viene affrontato questo problema utilizzando come soluzione il metodo Distinct di LINQ.

Per questo script viene creata una lista di stringhe inizializzata appositamente con dei valori doppi. A questo punto si può sfruttare il metodo Distinct per creare una nuova lista con una sola istanza di ogni elemento.

System.Collections.Generic.List<string> persone = new System.Collections.Generic.List<string>{
  "Stefano Mostarda", 
  "Daniele Bochicchio", 
  "Riccardo Golia", 
  "Cristian Civera", 
  "Marco Leoncini", 
  "Alessio Leoncini", 
  "Andrea Zani",
  "Stefano Mostarda", 
  "Cristian Paparelli", 
  "Ugo Lattanzi", 
  "Cristian Civera"
};

var q = from p in persone.Distinct() select p;

lv.DataSource = q;
lv.DataBind();

Anche in questo caso, LINQ offre una soluzione elegante, veloce e, soprattutto, molto semplice da apprendere poichè molto simile alla sintassi SQL a cui la maggior parte degli sviluppatori è abituata. Senza LINQ, questo processo avrebbe richiesto il ciclo della lista, e la comparazione degli elementi per verificare se l'elemento corrente già esiste. In altre parole si sarebbe dovuto scrivere e manutenere più codice.

Per approfondimenti si veda:

#20 - Unire liste tramite il Metodo Union di LINQ
http://www.winfxitalia.com/script/20/Unire-Liste-Tramite-Metodo-Union-LINQ.aspx

#22 - Ricercare elementi in comune tra più liste con la clausola Intersect di LINQ
http://www.winfxitalia.com/script/22/Ricercare-Elementi-Comune-Liste-Clausola-Intersect-LINQ.aspx

#24 - Eliminare elementi in comune tra più liste con la clausola Except di LINQ
http://www.winfxitalia.com/script/24/Eliminare-Elementi-Comune-Liste-Clausola-Except-LINQ.aspx

Commenti

Visualizza/aggiungi commenti

Rendere univoci gli elementi di una lista con la clausola Distinct di LINQ (#26) 1010 1
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi