简单的表达组合

时间:2017-08-02 20:22:43

标签: c# expression

我试图创建一个简单的表达式我有这个简单的类型:

public class BSType
{
    public int Length { get; set; }
    public string Name { get; set; }
}

我试图动态创建一个过滤表达式

(bsType) => bsType.Length == 3

我创建了一个表达式,它返回常量3

var right = Expression.Constant(3);

然后我有另一个Func<BSType, int>的表达式,看起来像这样

Expression<Func<BSType, int>> left = bsType => bsType.Length;

当我尝试将它们与像这样的等同表达式进行比较时

Expression.Equal(left, right);

我收到错误:

  

没有为类型&System; System.Func`2 [ExpressionBuilder.BSType,System.Int32]&#39;定义二元运算符Equal。和&#39; System.Int32&#39;

我觉得我需要将Type的参数传递给函数的左侧,以便它可以解析长度,但是我不确定如何这样做,有人能指出我的意思吗?正确的方向?

0 个答案:

没有答案