如何从System.Linq.Expressions.Expression中删除括号

本文关键字:删除 Expression Expressions System Linq | 更新日期: 2023-09-27 17:49:31

假设定义如下类:

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

现在我想建立一个比较Age属性大于20Expression,如下所示:

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

如何删除这些括号?

如何从System.Linq.Expressions.Expression中删除括号

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

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