我需要動態創建表達式。我的問題是如何增加括號中System.Linq.Expression處理優先級...如何用圓括號動態創建「System.Linq.Expression」表達式
int a = 1, b = 1, c = 1, d = 2;
我已經轉換低於表達
var v = a > 1 || b > 1 && c > 1 || d > 1;
Expression case1Expr =
Expression.AndAlso(
Expression.OrElse(
Expression.GreaterThan(Expression.Parameter(typeof(int), "a"), Expression.Constant(1)),
Expression.GreaterThan(Expression.Parameter(typeof(int), "b"), Expression.Constant(1))),
Expression.OrElse(
Expression.GreaterThan(Expression.Parameter(typeof(int), "c"), Expression.Constant(1)),
Expression.GreaterThan(Expression.Parameter(typeof(int), "d"), Expression.Constant(1))));
但如何用一個括號,
轉換var v2 = (a > 1 || b > 1) && (c > 1 || d > 1);
這正是OP已經在做的事情;沒有必要將值放入命名變量中。 – Servy 2015-01-09 20:04:35
提問後我也意識到,試一試 – 2015-01-09 20:04:54
@Servy同意。爲了清晰起見,我只是將其分解出來。米蘭,你可能想刪除這個問題,因爲你已經有了解決方案! :) – AlG 2015-01-09 20:21:47