c# 表达式树如下实现 .Where(p=>p.id==2)表达式 :p=>p.id==2如何动态生成,也就是属性id是已知字符串?如下可以得到LambdaExpression,但是怎么转成Expression呢?ParameterExpression param = Expression.Parameter(typeof(T),
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/25 17:20:36
![c# 表达式树如下实现 .Where(p=>p.id==2)表达式 :p=>p.id==2如何动态生成,也就是属性id是已知字符串?如下可以得到LambdaExpression,但是怎么转成Expression呢?ParameterExpression param = Expression.Parameter(typeof(T),](/uploads/image/z/8259840-0-0.jpg?t=c%23+%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%A0%91%E5%A6%82%E4%B8%8B%E5%AE%9E%E7%8E%B0+.Where%28p%3D%3Ep.id%3D%3D2%29%E8%A1%A8%E8%BE%BE%E5%BC%8F+%EF%BC%9Ap%3D%3Ep.id%3D%3D2%E5%A6%82%E4%BD%95%E5%8A%A8%E6%80%81%E7%94%9F%E6%88%90%2C%E4%B9%9F%E5%B0%B1%E6%98%AF%E5%B1%9E%E6%80%A7id%E6%98%AF%E5%B7%B2%E7%9F%A5%E5%AD%97%E7%AC%A6%E4%B8%B2%3F%E5%A6%82%E4%B8%8B%E5%8F%AF%E4%BB%A5%E5%BE%97%E5%88%B0LambdaExpression%2C%E4%BD%86%E6%98%AF%E6%80%8E%E4%B9%88%E8%BD%AC%E6%88%90Expression%E5%91%A2%3FParameterExpression+param+%3D+Expression.Parameter%28typeof%28T%29%2C)
c# 表达式树如下实现 .Where(p=>p.id==2)表达式 :p=>p.id==2如何动态生成,也就是属性id是已知字符串?如下可以得到LambdaExpression,但是怎么转成Expression呢?ParameterExpression param = Expression.Parameter(typeof(T),
c# 表达式树
如下实现 .Where(p=>p.id==2)
表达式 :p=>p.id==2如何动态生成,也就是属性id是已知字符串?
如下可以得到LambdaExpression,但是怎么转成Expression呢?
ParameterExpression param = Expression.Parameter(typeof(T),"c");
Expression left = Expression.Property(param,typeof(T).GetProperty("id"));
Expression right = Expression.Constant(1);
Expression filter = Expression.Equal(left,right);
LambdaExpression pred = Expression.Lambda(filter,param);
c# 表达式树如下实现 .Where(p=>p.id==2)表达式 :p=>p.id==2如何动态生成,也就是属性id是已知字符串?如下可以得到LambdaExpression,但是怎么转成Expression呢?ParameterExpression param = Expression.Parameter(typeof(T),
delegate(T)
{
return T.id==2;
}