0

実行時に動的にコンパイルされるLinq式が必要です

私は値を持っており、たとえば5000よりも大きい値と70を超える別の値の場合、定数xを返す必要があります。それ以外の場合は5000よりも大きい値を返し、70未満の値はyを返します。式ツリーa>5000を作成するにはどうすればよいですか。 &b <70、次にd else a> 5000&b> 70、次にe

4

1 に答える 1

3

三項演算子(?:)でラムダ式を使用できます。

var d = 1;
var e = 2;
var f = 3;

Expression<Func<int,int,int>> expression =
    (a, b) => (a > 5000 && b < 70) ? d :
              (a > 5000 && b > 70) ? e :
              f; // If b == 70

var func = expression.Compile();
var val = func(5432, 1);
于 2009-08-07T13:50:24.743 に答える