我怎么会去连接两个lambda表达式像theese:加入拉姆达表达式
Expression<Func<string, bool>> expr1 = a => a.Length > 100;
Expression<Func<string, bool>> expr2 = b => b.Length < 200;
...到表达这样的:
Expression<Func<string, bool>> expr3 = s => s.Length < 100 && s.Length < 200;
也就是说,与AndAlso经营者加入他们。 (或任何其他运营商的事情......)
我实际上成功了一些讨厌的递归替换lambda参数,然后加入Expression.AndAlso方法。但我正在寻找更简单的东西。
例如是这样的:(这显然不工作)
Expression<Func<string, bool>> expr3 = c => expr1(a) && expr2(b);
只是想知道,你为什么不能使用表达式> expr3 = s => s.Length <100 && s.Length <200 ;? –
2010-03-01 19:05:40
这是因为表达式是基于系统中的设置生成的。我实际上需要将一个表达式列表加入到一个最终表达式中。 – LaZe 2010-03-01 19:14:34