如何从System.Linq.Expressions.Expression中删除Parantheses?

时间:2015-05-16 10:25:20

标签: c# linq lambda expression expression-trees

假设定义了以下类:

public class Person 
{
    public int Age { get; set; }
}

现在我想构建一个Expression,将Age属性比20更好,比如:{/ p>

ParameterExpression param = Expression.Parameter(typeof(Person), "Person");
MemberExpression member = Expression.Property(param, "Age");
ConstantExpression constant = Expression.Constant(20);
Expression exp = Expression.GreaterThan(member, constant);

现在exp(Person.Age > 20)

需要它像Person.Age > 20

如何删除这些parantheses?

1 个答案:

答案 0 :(得分:3)

括号不在树中。这就是内置ToString输出的工作方式。它仅用于调试目的。 ToString输出甚至不是C# - 它有时看起来像它。试试true || true看看我的意思。格式为True OrElse True我相信。

输出格式无法更改。如果您需要某种输出格式,请自行格式化。这可能是相当多的工作。