簡體   English   中英

無法在Linq查詢中使用C#列表過濾掉記錄

[英]Unable to filter out records using C# list in Linq query

我的數據庫中有一個Products表,並且有一個用於保存產品顏色的字符串列。

我正在嘗試實現一項功能,用戶可以通過選擇多個顏色名稱來搜索產品。 為此,我正在使用包含多個顏色名稱的C#列表。

List<string> colorNames = new List<string>() { "silver" };

上面的代碼表明,我目前僅使用一種顏色來查找與“銀色”顏色匹配的產品。 我使用的Linq查詢如下:

context.Products.Where(prd => colorNames.Contains(prd.Color.ToLower().Trim()));

上面的代碼運行沒有任何錯誤,但是我面臨的問題是它返回的產品僅具有銀色。 但是在數據庫中,還存在顏色為“淺銀”“深銀紅色”等的現有產品。我希望我的Linq查詢也返回這些產品。

我知道這是不可能的,因為查詢將僅匹配銀色,但是我需要一種解決方法。

context.Products.Where(prd => colorNames.Any(col => prd.Color.ToLower().Trim().Contains(col)));

你可以試試看

暫無
暫無

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

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