猿问

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

我目前正在尝试获取商店列表中的产品列表,但前提是产品名称相同。


我总是得到 0 件物品。


我尝试使用以下两种不同的方法来解决问题。


//First Approach, return 0

var 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));

帮助表示赞赏:)


收到一只叮咚
浏览 201回答 3
3回答

精慕HU

您正在寻找的是Any而不是Where:var products = Store.ReadAll().Where(prods => prods.Products.Any(p => p.ProductName == productName));

胡子哥哥

假设stores是一个 IEnumerable 类型,那么下面应该可以工作。将第二个参数传递给 Contains 方法很重要,因此比较不区分大小写,否则如果产品名称之间的大小写不同,它将不返回任何内容。我在回答中假设 Store 类型有一个名为 Products of List< string > 类型的属性。var&nbsp;matchingStores&nbsp;=&nbsp;stores.Where(s=>&nbsp;s.Products.Contains(productName, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringComparer.OrdinalIgnoreCase));

慕田峪9158850

所以我部分解决了我的问题,显然,这不是一个真正的 linq 问题,而是一个数据库问题。我有一个对象列表,其中包含一个对象列表,这给了我一个 M:M 关系。但是当我使用 list.add(item) 更改列表时,.net Entity Framework 没有重新配置。所以我的清单总是空的。但无论如何,感谢您的帮助!:)
随时随地看视频慕课网APP
我要回答