C# 在运行时使用LINQKIT将linq转换为对象或查询

C# 在运行时使用LINQKIT将linq转换为对象或查询,c#,linq,linqkit,C#,Linq,Linqkit,我有一个多值列表3,5,10 现在我想在运行时使用Or操作符创建一个linq。where过滤器 如何使用LINQKit实现这一点?或者用普通的linq,但我认为这是不可能的 例如,这将是一个硬编码版本: var filter = mydata.Where(v => v.state == "3" || v.state == "5" || v.state == "10"); 这将动态过滤mydata数组 但我不希望它被硬编码 您可以简单地使用Contains方法,如下所示: var filt

我有一个多值列表3,5,10

现在我想在运行时使用Or操作符创建一个linq
。where
过滤器

如何使用LINQKit实现这一点?或者用普通的linq,但我认为这是不可能的

例如,这将是一个硬编码版本:

var filter = mydata.Where(v => v.state == "3" || v.state == "5" || v.state == "10");
这将动态过滤mydata数组


但我不希望它被硬编码

您可以简单地使用
Contains
方法,如下所示:

var filter = mydata.Where(v => list.Contains(v.state));

您可以像这样简单地使用
Contains
方法:

var filter = mydata.Where(v => list.Contains(v.state));

试试
Where(v=>list.Contains(v.state))
.hell。。。我是不是觉得很复杂。。。谢谢。请尝试
Where(v=>list.Contains(v.state))
。见鬼。。。我是不是觉得很复杂。。。谢谢