C# 如何基于长度不固定的列表构建linq或条件
我想在Linq中建立一个OR条件。条件是基于列表的。 例如:C# 如何基于长度不固定的列表构建linq或条件,c#,linq,C#,Linq,我想在Linq中建立一个OR条件。条件是基于列表的。 例如: // list.count == 2 c=>c.state_id==list[0] or c.state_id == list[1]; // list.count == 3 c=>c.state_id==list[0] or c.state_id == list[1] or c.state_id == list[2]; 因为列表的长度不是固定的,所以如何建立这样的条件? 谢谢您可以使用Contains构建查询: c =
// list.count == 2
c=>c.state_id==list[0] or c.state_id == list[1];
// list.count == 3
c=>c.state_id==list[0] or c.state_id == list[1] or c.state_id == list[2];
因为列表的长度不是固定的,所以如何建立这样的条件?
谢谢您可以使用
Contains
构建查询:
c => list.Contains(c.state_id);
您可以使用
Contains
构建查询:
c => list.Contains(c.state_id);
另一种方法是使用
JOIN
from c in states
join l in list on c.state_id equals l
select c;
另一种方法是使用
JOIN
from c in states
join l in list on c.state_id equals l
select c;
一种方法是使用
包含。例如,检查此答案:一种方法是使用包含。检查这个答案,例如:Impl。注意:EF5(可能超过)和L2S绑定单个参数,因此SQL Server有~2k-3k列表长度限制。您希望在
子句中构建SQL,因此使用LINQContains()
method.Impl。注意:EF5(可能超过)和L2S绑定单个参数,因此SQL Server有~2k-3k列表长度限制。您希望在
子句中构建SQL,因此使用LINQContains()
方法。