Anonymous Type con LINQ

di , in LINQ,

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
http://www.winfxitalia.com/articoli/netfx3.5/linq.aspx

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

Commenti

Visualizza/aggiungi commenti

Anonymous Type con LINQ (#16)
| 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