请教一个动态构建lamda表达式的问题
我想构建一个数组Contains方法判断是否包含的表达式。但是好像我的代码老是出错。。。。特来请教大神。
目标构建的表达式:
x => userIDS.Contains(x.NewBy)
string exMsg = string.Empty;
Expression<Func<Modelv_SA_WinOrder, bool>> exe = null;
string[] userIDS = new string[] { "1", "2" };
try
{
ParameterExpression paramEx = Expression.Parameter(typeof(Modelv_SA_WinOrder), "x");
Expression ex = Expression.Call(
Expression.Constant(userIDS),
typeof(string[]).GetMethod("Contains"),
Expression.Property(paramEx, typeof(Modelv_SA_WinOrder).GetProperty("NewBy"))
);
exe = Expression.Lambda<Func<Modelv_SA_WinOrder, bool>>(ex, new ParameterExpression[] { paramEx });
//GDMM
//newData = dALt_SA_WinOrder.GetDatas();
//userIDS = userDAL.GetOrganizationDataByUserCLTID("MC");
//userDAL.FilterDataByUserOrganization<Modelv_SA_WinOrder>(newData, "NewBy");
}
catch (Exception ex)
{
exMsg = ex.Message;
}
目标构建的表达式:
x => userIDS.Contains(x.NewBy)
string exMsg = string.Empty;
Expression<Func<Modelv_SA_WinOrder, bool>> exe = null;
string[] userIDS = new string[] { "1", "2" };
try
{
ParameterExpression paramEx = Expression.Parameter(typeof(Modelv_SA_WinOrder), "x");
Expression ex = Expression.Call(
Expression.Constant(userIDS),
typeof(string[]).GetMethod("Contains"),
Expression.Property(paramEx, typeof(Modelv_SA_WinOrder).GetProperty("NewBy"))
);
exe = Expression.Lambda<Func<Modelv_SA_WinOrder, bool>>(ex, new ParameterExpression[] { paramEx });
//GDMM
//newData = dALt_SA_WinOrder.GetDatas();
//userIDS = userDAL.GetOrganizationDataByUserCLTID("MC");
//userDAL.FilterDataByUserOrganization<Modelv_SA_WinOrder>(newData, "NewBy");
}
catch (Exception ex)
{
exMsg = ex.Message;
}
...全文
相关推荐
Cracking-the-coding-Interview:破解《编码面试》一书中的问题的Python解决方案
破解编码面试 破解《编码面试》一书中的问题的Python解决方案
Python cookbook (第3版 )高清中文完整版-综合文档
Python cookbook (第3版 )高清中文完整版
C# Lamda表达式简单运用
C# Lamda表达式简单运用
学习Java 8【Lamda表达式开发】免费视频
本课程主要针对于Java 8(JDK 1.8)的新特性Lamda表达式进行了全面讲解。讲解了java基于函数编程的语法,以及与Lamda表达式操作有关的内建接口、批处理、MapReduce数据分析汇总处理。
C++ function、bind以及lamda表达式
本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lambda表达式, function对象和bind机制。之所以把这三块放在一起讲,是因为这三块之间有着非常密切的关系,通过对比学习,加深对这部分内容的理解。在开始之间,首先要讲一个概念,closure(闭包),这个概念是理解lambda的基础。下面我们来看看wikipedia上对于计算机领域的closure的定义: A closure (also lexical closure, function closure or function value) is a function together with a refer


