2011-03-03 22 views
7

adresindeki Lambda ifadelerinde değişkenleri atayın. Linq'de yerel değişkenleri let deyimiyle atayabilirim. Lambdas ile değişkenler nasıl yakalanır? Neye ihtiyacım olmayan çalışma örneği:Linq: "from .. select" formunu kullanırken

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

cevap

13

Bu çalışması gerekir:

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

+1 Evet, sadece bir sopa; "var localVariable = a.number + 2" nin sonunda – Will

+0

Evet, bunu unutmuşum. –

+0

Teşekkürler bu aradığım şey, ama şu hatayı alıyorum: Bir deyim gövdesine sahip bir lambda ifadesi, bir ifade ağacına dönüştürülemiyor – pistacchio