为了账号安全,请及时绑定邮箱和手机立即绑定

Linq:获取列表中的项目,该列表也在列表中

Linq:获取列表中的项目,该列表也在列表中

C#
收到一只叮咚 2022-01-15 17:23:07
我目前正在尝试获取商店列表中的产品列表,但前提是产品名称相同。我总是得到 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));



查看完整回答
反对 回复 2022-01-15
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

假设stores是一个 IEnumerable 类型,那么下面应该可以工作。将第二个参数传递给 Contains 方法很重要,因此比较不区分大小写,否则如果产品名称之间的大小写不同,它将不返回任何内容。

我在回答中假设 Store 类型有一个名为 Products of List< string > 类型的属性。

var matchingStores = stores.Where(s=> s.Products.Contains(productName,
                                                    StringComparer.OrdinalIgnoreCase));


查看完整回答
反对 回复 2022-01-15
?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

所以我部分解决了我的问题,显然,这不是一个真正的 linq 问题,而是一个数据库问题。我有一个对象列表,其中包含一个对象列表,这给了我一个 M:M 关系。但是当我使用 list.add(item) 更改列表时,.net Entity Framework 没有重新配置。所以我的清单总是空的。

但无论如何,感谢您的帮助!:)


查看完整回答
反对 回复 2022-01-15
  • 3 回答
  • 0 关注
  • 200 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号