我有一個N System.Linq.Expressions.Expression
的序列,我想將它轉換成一個N-Nary表達式,它將我的所有表達式連接成一個N-1次運算符。創建一個n-nary表達式
因此,對於4個表達式的集合{e1, e2, e3, e4}
和運營商AND
我會得到:e1 AND e2 AND e3 AND e4
。
由於操作是一樣的,我可以通過簡單地鏈接在一起,N-1 BinaryExpressions
Expression result = (((e1 AND e2) AND e3) AND e4);
但我想有可能是這樣做的一個簡單的方法創建一個表達式。基本上像
Expression.NNary(ExpressionType operator, IEnumerable<Expression> expressions)
有沒有這樣的事情已經落實或做我有BinaryExpressions
辦呢?
但是,這怎麼可以用來組合表達式?這就是問題所在。 –
這只是用BinaryExpressions做的簡短/ linq方式,而不是循環收集並手動完成。 – Adrian