Linq ti cambia la vita! - Part II

Volevo fare un altro post (dopo questo) su come l'introduzione di Linq ti permetta di fare operazioni complesse su collezioni (insiemi) di dati, in modo, a mio parere, più facile ed intuitivo.

In questo esempio devo aggregare un insieme di oggetti, denominati transazioni. Questi oggetti hanno un codice e una serie di abilitazioni rappresentate da variabili booleane. Le regole di aggregazione sono queste: devo estrarre transazioni distinte per codice, e fare l'unione delle abilitazioni di tutte le transazioni con lo stesso codice. Il tutto si traduce nella seguente query:

this._transactions = transactions.GroupBy( transaction => transaction.Code, (key, elements) => new Transaction() { Code = key, CanRead = elements.Any(nt => nt.CanRead), CanUpdate = elements.Any(nt => nt.CanUpdate), CanCreate = elements.Any(nt => nt.CanCreate) }).ToArray();

Ovviamente non voglio dire che non si potesse fare con un metodo "tradizionale".

 

Matteo

 

 

Technorati Tag: ,,

Print | posted @ mercoledì 28 gennaio 2009 16:31

Comments have been closed on this topic.