Ho bisogno di una discussione riguardante le prestazioni di LINQ e Lambda Expression.
Qual è il migliore?
Immagino tu voglia dire query expression
quando parli di LINQ qui.
Sono equivalenti. Il compilatore cambia l’ query expression
della query expression
Lambda equivalente prima di compilarlo, quindi l’IL generato è esattamente lo stesso.
Esempio
var result = select s from intarray where s < 5 select s + 1;
è esattamente lo stesso di
var result = intarray.Where( s => s < 5).Select( s => s+1);
Si noti che se si scrive l'espressione della query in questo modo:
var result = select s from intarray where s < 5 select s;
È convertito in:
var result = intarray.Where( s => s < 5);
L'ultima chiamata a Select viene omessa perché è ridondante.
un rapido confronto nel riflettore probabilmente farebbe il trucco. Tuttavia, da un punto di vista delle “preferenze”, trovo le istruzioni lambda più facili da seguire e scrivere e usarle su tutta la linea sia che si tratti di oggetti, xml o qualsiasi altra cosa.
Se le prestazioni sono trascurabili, sceglierei quella che funziona meglio per te.
In realtà ho iniziato un piccolo argomento guardando i metodi linq che potrebbero essere di interesse:
Qual è il tuo metodo linq preferito o ‘trucco’
Saluti..