从现有Lambda表达式创建动态Lambda
本文关键字:Lambda 创建 动态 表达式 | 更新日期: 2023-09-27 18:08:44
我有一个扩展方法来配置teleerik网格的过滤。它接收lambda表达式作为参数。是否有可能从现有的表达式中创建新的表达式,例如
public static void ConfigureFiltering<T>(this HtmlHelper html, Configurator conf, params Expression<Func<T,object>>[] args) where T:class
{
}
我想创建像
这样的表达式Expression<Func<object,bool?>> filtere = obj=>obj == null? null: obj.ToString().StartsWith("xyz");//return type is nullable cause of string
Expression<Func<object,bool>> filtere = obj=>Convert.ToInt32(obj) < 20 //return type is non-nullable cause of int
有人可以PLZ指导我如何针对这个问题
我不知道你的问题是什么,也不知道你的问题的第一部分和第二部分是如何联系在一起的。
我可以告诉你,你的第一个表达式中的三元运算符需要将null
转换为bool?
,所以它将变成:
Expression<Func<object,bool?>> filtere = obj=>obj == null
? (bool?)null
: obj.ToString().StartsWith("xyz");
同时,两个表达式不能共享filtere
的相同变量名。
除此之外,你还需要更详细地解释你要做的事情。