Anonymous Type con LINQ

di Stefano Mostarda, 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
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

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