IQueryable where 子句检查动态数组

IQueryable where clause checking dynamic array

我需要知道我需要为 where 子句放置什么来过滤动态整数列表。

我一直在尝试使用 IQueryable 和 'where in array' 来搜索它,但我不知道我需要用什么词来更好地搜索它。我一直很糟糕,查看另一个人编写的代码并复制模式而不是学习正在发生的事情。我就是想不通。

在我正在处理的 csharp 代码行中,我试图模仿来自 SQL 查询的过滤器,它看起来如下所示,(从 table jobs with id =1, id=2, and id=3).

SELECT * FROM jobs j WHERE j.id in (1,2,3)

table工作可能看起来像:

CREATE TABLE jobs
{   id       [int] identity(1,1) not null,
    username [varchar](50) not null,
    category [varchar](50) not null,
    ...
}

我目前拥有的:

string csv_ids = "1,2,3";


IQueryable<MyClass> info = null;
info = from j in db.jobs

       // this is the line I'm having trouble with
       where j.id in csv_ids.Split(',') 

       select new MyClass
       {
           // getting data
       };

解法: 在 Roy 的帮助下,我通过添加

设法朝着正确的方向前进
int[] ids = csv_ids.Split(',').Select(int.Parse).ToArray(); //since id is integer

而且,主要是

...
// here
where ids.Contains(j.id) 
...

使用包含元素列表进行检查

string csv_ids = "1,2,3";
string[] ids = csv_ids.Split(',');

var info = from j in db.jobs
       where ids.Contains(j.id)
       select new MyClass
       {};