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
{};
我需要知道我需要为 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
{};