2011-03-03 15 views
7

al usar el formulario "de ... seleccionar" Puedo asignar variables locales en Linq con la instrucción let. Cómo capturar variables con lambdas? No ejemplo práctico de lo que necesito:Linq: asignar variables en las expresiones Lambda

var result = list.Select(a => 
    let localVariable = a.number + 2 // <- obviously non working 
    new { 
     Variable = localVariable 
    } 
); 

Respuesta

13

Esto debería funcionar:

var result = list.Select(a => 
    { 
    var localVariable = a.number + 2; 
    return new 
    { 
     Variable = localVariable 
    }; 
    } 
); 
+0

+1 Sí, sólo se adhieren a; al final de "var localVariable = a.number + 2" – Will

+0

Sí, me olvidé de eso. –

+0

gracias, creo que esto es lo que estoy buscando, pero me aparece el siguiente error: Una expresión lambda con un cuerpo de declaración no se puede convertir a un árbol de expresiones – pistacchio