LINQ – Variabili temporanee con la parola chiave Let

L’uso di LINQ apre davvero a scenari molto molto interessanti grazie alla sua potenza e flessibilità.

Oggi ho scoperto che in una query LINQ è possibile costruire una variabile temporanea ed utilizzarla successivamente nella esposizione del risultato della query.

Ecco un esempio:

Nella query LINQ precedente, mediante la parola chiave “let” è possibile creare una variabile temporanea (discount nell’esempio), farci delle manipolazioni, e ritrovarsi la variabile nella query.

Figo

Link utili della settimana #10

On the Fly Zip and Attach” Windows Live Writer Plugin
Questo add-in è utile a tutti i bloggers che (come me) usano Windows Live Writer per scrivere e pubblicare i propri posts. Esso permette di selezionare files / directory dal proprio PC, zipparli al volo ed includerli come allegato al proprio post onde permettere al lettore di farne il download. Decisamente da provare.

Dynamic LINQ Methods
Molto molto interessante. Trattasi di una serie di extensions methods per effettuare query Linq con parametri stringa (es. where, groupby, orderby, ecc), e quindi dinamici a run-time. Questa è una funzionalità parecchio utile che sarebbe stato meglio includerla come parte integrante dei vari providers Linq (a mio modesto parere).

Visual C# 2010 samples
Parecchi esempi di codice su C# 4.0 e Linq

i4o (ovvero index for objects)

Per chi (come me) utilizza LINQ  questo progetto presente su Codeplex è senz’altro interessante.

Come è noto LINQ  effettua  le ricerche in modo sequenziale, cosa che su collezioni con parecchi items può dar luogo ad un degrado delle prestazioni.

Questo progetto si prefigge come obiettivo quello di dotare LINQ della ricerca indicizzata degli elementi, che, stando a quanto riportato nella descrizione del progetto, è in grado di rendere le query oltre mille volte più veloci rispetto alla ricerca sequenziale.

Il progetto è attualmente in Beta 3, e non ci sono rilasci pianificati.

Sarebbe interessante da provare (avendone il tempo !).

Se qualcuno lo ha già fatto sarei lieto di leggerele impressioni di utilizzo.