请问一个Expression的有关问题,关于linq的三目写法
请教一个Expression的问题,关于linq的三目写法
Expression可以用于组成lambda表达式,我的疑问是我如何用Expression来组成一个三目的表达式?
比如
var a = a.c1 == 1 ? a : null;
这句简单的三目,我如何用Expression来组装lambda?
有高手来支援么?
另外还有个问题,我如何用Expression来实现left join?
------解决方案--------------------
Expression可以用于组成lambda表达式,我的疑问是我如何用Expression来组成一个三目的表达式?
比如
var a = a.c1 == 1 ? a : null;
这句简单的三目,我如何用Expression来组装lambda?
有高手来支援么?
另外还有个问题,我如何用Expression来实现left join?
------解决方案--------------------
//Expression<Func<A, A>> f = a => a.cont >= 23 ? a : null;
var par = Expression.Parameter(typeof(A), "a");
var ex = Expression.Lambda(Expression.Condition(Expression.Equal(MemberExpression.Property(par, "cont"), Expression.Constant(23, typeof(int))), par, Expression.Constant(null, typeof(A))), par);
var s = (ex.Compile() as Func<A, A>)(new A() { cont = 2 });