Una delle nuove feature introdotte con C# 3.0 e VB 9 è la possibilità di creare dei tipi direttamente nel corpo di un metodo. LINQ sfrutta appieno questa caratteristica dando la possibilità di restituire non l'oggetto interrogato, ma uno creato al volo.
Questa caratteristica da' la possibilità di risparmiare carico quando si utilizza LINQ verso basi dati, in quanto permette di ritornare solamente alcuni campi e non tutta la tabella interrogata.
In questo esempio viene effettuata una query su una lista di persone e ne viene restituita un'altra (filtrata con le persone che hanno più di 30 anni) che contiene un oggetto con la sola proprietà NomeCompleto, che include il nome ed il cognome.
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 = "Rionero in Vulture", DataNascita = new DateTime(1979, 10, 30), 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 = 32, Citta = "Empoli", DataNascita = new DateTime(1975, 9, 1), Indirizzo = "Via " }
};
var q = from p in persone where p.Eta > 30 select new { NomeCompleto = p.Nome + " " + p.Cognome };Per approfondimenti si veda:
Introduzione a LINQ
https://www.winfxitalia.com/articoli/netfx3.5/linq.aspx
#14 - Eseguire query con LINQ
https://www.winfxitalia.com/script/14/Eseguire-Query-LINQ.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Mischiare codice server side e client side in una query LINQ con Entity Framework
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
I più letti di oggi
- .NET Campus - Roma
- .NET Conference Italia 2022 - Track in presenza - Milano
- Release Candidate 1 di Internet Explorer 8
- Windows Azure in versione 1.0: annunciata la piattaforma Microsoft per il cloud computing
- Disponibile la June 2011 CTP di Entity Framework
- Microsoft Security Bulletin MS02-043
- .NET vs J2EE? Secondo Microsoft non ci sono paragoni


