我目前正在尝试获取商店列表中的产品列表,但前提是产品名称相同。我总是得到 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 关注
- 200 浏览
添加回答
举报
0/150
提交
取消
