Eseguire raggruppamenti tramite Group By con LINQ

di Stefano Mostarda, in LINQ,

LINQ permette di effettuare ricerche molto simili a quelle che si fanno su basi dati SQL. In quest'ottica una funzionalità molto importante è la possibilità di raggruppare gli oggetti con una clausola simile alla Group By SQL.

Grazie a questa caratteristica, si può creare un albero di oggetti dove una proprietà è il campo in base al quale si raggruppa ed un'altra è una lista degli oggetti che corrispondono alla chiave.

In questo esempio, viene effettuata una query su una lista di persone e ne viene restituita un'altra che contiene come chiave l'età e come lista corrispondente le persone che hanno quell'età.

System.Collections.Generic.List<Persona> persone = new System.Collections.Generic.List<Persona>{
  new Persona { Nome = "Stefano", Cognome = "Mostarda", Eta = 28, Citta="Roma", DataNascita=new DateTime(1979, 04, 11), Indirizzo="Via " },
  new Persona { Nome = "Daniele", Cognome = "Bochicchio", Eta = 28, Citta = "Vulture", DataNascita = new DateTime(1979, 10, 20), Indirizzo = "Via " 

},
  new Persona { Nome = "Riccardo", Cognome = "Golia", Eta = 35, Citta = "Padova", DataNascita = new DateTime(1974, 10, 20), Indirizzo = "Via " },
  new Persona { Nome = "Cristian", Cognome = "Civera", Eta = 25, Citta = "Brescia", DataNascita = new DateTime(1981, 10, 20), Indirizzo = "Via " },
  new Persona { Nome = "Marco", Cognome = "Leoncini", Eta = 35, Citta = "Empoli", DataNascita = new DateTime(1975, 9, 1), Indirizzo = "Via " }
};

var q = persone.GroupBy(pe => pe.Eta, pe => pe).AsQueryable();

Per approfondimenti si veda:

Introduzione a LINQ
https://www.winfxitalia.com/articoli/netfx3.5/linq.aspx

Eseguire query con LINQ
https://www.winfxitalia.com/script/14/Eseguire-Query-LINQ.aspx

Anonymous Type con LINQ
https://www.winfxitalia.com/script/16/Anonymous-Type-LINQ.aspx

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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