我目前正在嘗試獲取商店列表中的產品列表,但前提是產品名稱相同。我總是得到 0 件物品。我嘗試使用以下兩種不同的方法來解決問題。//First Approach, return 0var stores= Store.ReadAll().Where(prods => prods.Products.Contains(product))//Second Approach, doesn't compile but it shows what i wan't to do.var stores= Store.ReadAll().Where(prods => prods.Products.Where(p => p.ProductName == productName));幫助表示贊賞:)
3 回答

精慕HU
TA貢獻1845條經驗 獲得超8個贊
您正在尋找的是Any
而不是Where
:
var products = Store.ReadAll().Where(prods => prods.Products.Any(p => p.ProductName == productName));

胡子哥哥
TA貢獻1825條經驗 獲得超6個贊
假設stores
是一個 IEnumerable 類型,那么下面應該可以工作。將第二個參數傳遞給 Contains 方法很重要,因此比較不區分大小寫,否則如果產品名稱之間的大小寫不同,它將不返回任何內容。
我在回答中假設 Store 類型有一個名為 Products of List< string > 類型的屬性。
var matchingStores = stores.Where(s=> s.Products.Contains(productName, StringComparer.OrdinalIgnoreCase));

慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
所以我部分解決了我的問題,顯然,這不是一個真正的 linq 問題,而是一個數據庫問題。我有一個對象列表,其中包含一個對象列表,這給了我一個 M:M 關系。但是當我使用 list.add(item) 更改列表時,.net Entity Framework 沒有重新配置。所以我的清單總是空的。
但無論如何,感謝您的幫助!:)
- 3 回答
- 0 關注
- 161 瀏覽
添加回答
舉報
0/150
提交
取消