2011-03-03 17 views
7

「from .. select」フォームを使用するLinqでローカル変数をletステートメントで割り当てることができます。ラムダで変数を取り込む方法は?私は必要なものの非作業例:Linq:Lambda式で変数を代入する

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

答えて

13

これは動作するはずです:

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

+1うん、ちょうどスティック。 "var localVariable = a.number + 2"の末尾にある – Will

+0

ええ、それを忘れました。 –

+0

これは私が探していると思いますが、次のエラーが発生します: ステートメント本文のラムダ式を式ツリーに変換できません。 – pistacchio