2016-01-31 66 views
0

我想在Linq中創建OR條件。條件是基於一個列表。 例如:如何在不固定長度的列表上創建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]; 

對於該列表的長度是不固定的,所以如何可以建立這樣的條件? 感謝

+0

一種方法是使用'Contains'。檢查這個答案,例如:http://stackoverflow.com/a/34710273/2946329 –

回答

2

可以使用Contains構建查詢:

c => list.Contains(c.state_id); 
+0

Impl。注意:EF5(可能超出)和L2S綁定單個參數,因此SQL Server的列表長度限制爲〜2k-3k。 – user2864740

+0

你想建立一個SQL'IN'子句,所以使用LINQ'Contains()'方法。 – Rahul

0

另一種方法是使用JOIN

from c in states 
join l in list on c.state_id equals l 
select c; 
相關問題