从对象列表创建lambda表达式

时间:2013-07-25 17:22:41

标签: c# lambda expression

我正在尝试实现多选过滤器以传递到通用存储库。

存储库过滤器方法采用Expression<Func<T, bool>>参数。

通常我会将过滤器应用为 Filter(i => i.Id == myId && i.Name.Contains(myName))但在这种情况下,我有一组在List中提供的值,我想遍历列表并动态创建Lambda表达式的一部分以传递给Filter方法。

所以我对filter方法的调用就像Filter(myGeneratedLambdaExpression&amp;&amp; i.Name.Contains(myName))

然后myGeneratedLambdaExpression会解析为类似的东西 (i =&gt; i.Id == myId1 || i.Id == myId2 || i.Id == myId3)and myId1,myId2和myId3是List中包含的值

我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要DynamicLinQ。请参阅this博客。