c# 表达式树如下实现 .Where(p=>p.id==2)表达式 :p=>p.id==2如何动态生成,也就是属性id是
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/16 06:27:47
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);
如下实现 .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);
delegate(T)
{
return T.id==2;
}
再问: 这样会提示T没有id属性
再答: T 是一个泛型 你给的泛型 没有ID属性的话 传进去肯定没有ID了啊。。 向你写的lambda .Where(p=>p.id==2) p必须是已经实例化并且有ID的一个类
再问: 谢谢,其实这是一个父类的方法 class Base { .Where(p=>p.id==2) } 确定的是继承这个类的传入的T,肯定是都有id属性的 为了减少代码量,所以想写到父类中 希望能通过像这种GetProperty("id")); 的方式保证编译通过
再答: 不客气
{
return T.id==2;
}
再问: 这样会提示T没有id属性
再答: T 是一个泛型 你给的泛型 没有ID属性的话 传进去肯定没有ID了啊。。 向你写的lambda .Where(p=>p.id==2) p必须是已经实例化并且有ID的一个类
再问: 谢谢,其实这是一个父类的方法 class Base { .Where(p=>p.id==2) } 确定的是继承这个类的传入的T,肯定是都有id属性的 为了减少代码量,所以想写到父类中 希望能通过像这种GetProperty("id")); 的方式保证编译通过
再答: 不客气
c# 表达式树如下实现 .Where(p=>p.id==2)表达式 :p=>p.id==2如何动态生成,也就是属性id是
where id='"&session("id")&
求这张图P站ID
maya中表达式 if(id%10==0)
$id = isset($_GET['id']) ? $_GET['id'] : ''; 这句是什么意思?
android:id="@+id/btn_save"是什么意思?
"int x y=0,z,*p[3];p[0]=&y;p[1]=&y;p[2]=&z;",以下表达式有语法错误的是
sql 中 select * from A left join B on A.id=B.id where A.id=?如
sql如何取交集有这样两条sql语句select distinct id from a where id='123'se
表达式a=*p++中,p为一指针,该表达式运算的正确顺序应该是?
$id="select id from account where name='".$_SESSION['login']
$query = mysql_query( select * from 表名 where id='$_GET[id]'