簡體   English   中英

如何使用List <>作為Linq的where子句的條件?

[英]How can I use a List<> as the condition for my where clause with Linq?

所以我已經把頭撞在那堵諺語的牆上好幾個小時了,我想我想看看是否有人能解決這個問題……

我有一個想要用作搜索過濾器的值的List<string> 在過去,我會在WHERE field = 'a' OR field = 'b' OR field = 'C'構建一個WHERE field = 'a' OR field = 'b' OR field = 'C'的字符串。 但是隨着Linq的建立,那么較長的WHERE子句相當困難。 我希望能工作的是:

var results = from x in x.table
              where x.Equals(List<string>)
              select x;

las,編譯器不夠聰明,無法將List <>分解為WHERE field = 'a' OR field ='b'類型的查詢。 我已經在List<string>上以foreach循環的方式進行了此過程,但是當我希望執行的那一部分在SQL Server上進行時,它會將處理推送到客戶端。 我是住在這里的幻想世界還是有辦法實現這一目標?

您可以使用Contains()

List<string> yourList = new List<string> { "A", "B", "C" };

var results = from x in x.table
              where yourList.Contains(x)
              select x;

如果是SQL的Linq,它將生成WHERE field IN ('A', 'B', 'C')子句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM