LINQ To Objects



Il Linq è una grande innovazione del .NET Framework 3.0.

In questo articolo vedremo come usarlo per effettuare query non su array di variabili, ma su una lista di oggetti.

Partiamo con un esempio che poi andremo a spiegare:

public void LinqTest()
{
List<Impiegato> list = new List<Impiegato>
{
new Impiegato { Nome=”Gianni”, Cognome=”Ricci”, Anzianita=5 },
new Impiegato { Nome=”Antonio”, Cognome=”Leone”, Anzianita=2 },
new Impiegato { Nome=”Piero”, Cognome=”Bianchi”, Anzianita=4 },
new Impiegato { Nome=”Matteo”, Cognome=”Rossi”, Anzianita=1 }
};

Ienumerable<Impiegato> anziani = from i in list
where i.Anzianita >= 4
select i;

Console.WriteLine(“Elenco Impiegati che lavorano da più di 4 anni:\n”);

foreach (Impiegato x in anziani)
{
Console.WriteLine(“{0} {1} lavora da {2} anni”, x.Nome, x.Cognome, x.Anzianita);
}
}

Dove la classe Impiegato è la seguente:

public class Impiegato
{
public string Nome { get; set; }
public string Cognome { get; set; }
public int Anzianita { get; set; }
}

Costruita usando le Proprietà Automatiche.

Veniamo quindi al listato, nella funzione LinqTest() si costruisce una lista di Impiegati tramite la classe List usando i Generic.
La lista viene popolata di oggetti Impiegato direttamente in fase di instanziazione, tramite gli Object Initializers.

Fatto questo, si arriva al codice Linq.
Vediamolo passo per passo:

from i in list

Si indica che si vuole effettuare la ricerca sui vari impiegati presenti nella lista list.

where i.Anzianita >= 4

Sceglie tutti gli impiegati che hanno la Proprietà Anzianita maggiore o uguale a 4.

select i;

Seleziona tutti gli Impiegati che corrispondono alla clausola where.

Fatto questo si ottengono i vari oggetti impiegato come mostrato nel ciclo foreach, che da come risultato:

Elenco Impiegati che lavorano da più di 4 anni:

Gianni Ricci lavora da 5 anni
Piero Bianchi lavora da 4 anni

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest