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 = "Daniel", 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 = 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
http://www.winfxitalia.com/articoli/netfx3.5/linq.aspx
#14 - Eseguire query con LINQ
http://www.winfxitalia.com/script/14/Eseguire-Query-LINQ.aspx
Nota: Questo script contiene un allegato.
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.






Stampa
Download



