Andrea Painelli's Blog


"You shouldn't compare yourself to the best others can do but to the best you can do"
Ora e Data
Calendario
aprile 2025
lmmgvsd
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
Archivio Posts
Anno 2007

Linq: il nuovo linguaggio di interrogazione di .net 3.5

Linq non è altro che un'estensione del linguaggio che permette di eseguire query verso una determinata risorsa. La risorsa può essere un file XML, un database o una collection di classi e nonostante questo, la sintassi Linq rimane la stessa.

Scrivere una query per cercare all'interno di un grafo di oggetti è sicuramente più semplice che ciclare gli elementi uno ad uno, alla ricerca di quelli che rispettino tali caratteristiche (LinqToObjects).
Scrivere una query con Linq, piuttosto che utilizzare XPath, per ritrovare dati in formato XML, è molto più semplice e veloce dal punto di vista dello sviluppo e della leggibilità del codice (LinqToXml).

Come detto in precedenza, utilizzando Linq si possono eseguire query verso una struttura di oggetti. Per dimostrare la potenza di questa tecnologia si pensi ad una lista di oggetti di tipo Persona.

public class Persona{
  public string Nome { get; set; }
  public string Cognome { get; set; }
  public int Eta { get; set; }
  public string Citta { get; set; }
}

Notare la sintassi semplificata delle proprietà che sfrutta le automatic properties.
Si supponga di voler ricercare tutte le persone che abbiano compiuto la maggiore età.

List<Persona> persone = new List<Persona> {
  new Persona  { Nome="Stefano", Cognome="Mostarda", Eta=14, Citta="Roma"},
  new Persona  { Nome="Riccardo", Cognome="Golia", Eta=35, Citta="Padova"},
  new Persona  { Nome="Cristian", Cognome="Civera", Eta=25, Citta="Brescia"},
  new Persona  { Nome="Christian", Cognome="Paparelli", Eta=31, Citta="Roma"},
};

var result = from p in persone
  where p.Eta > 17
  select p;

GridView1.DataSource = result;
GridView1.DataBind();

Come si può osservare dal codice, sono state utilizzate alcune feature del .NET Framework 3.5 come gli Array e gli Object Initializers. Anche se non fanno parte delle novità introdotte appositamente per supportare Linq, questo è un esempio di come rendano comumque il codice più semplice da scrivere.

Categoria: dotNET
giovedì, 02 ago 2007 Ore. 09.19


Dott. Andrea Painelli (classe '83)
Statistiche
  • Views Home Page: 6.070
  • Views Posts: 16.496
  • Views Gallerie: 65
  • n° Posts: 10
  • n° Commenti: 3
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003