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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.