防止项目在字符串LINQ中显示
本文关键字:LINQ 显示 字符串 项目 | 更新日期: 2023-09-27 18:05:17
我有一个基于产品分类的价格列表。我需要确保这些产品的价格在子类别没有显示在这个列表中,但他们是。子类别和类别在db中的同一个表中,唯一的区别是子类别将有一个父ID来显示它是子类别。
我有这两个LINQ语句,我需要以某种方式连接在一起,我不能得到它的权利。也许我没有尝试用正确的方式来做这件事,但我对LINQ还不是很有经验,而且我还没能在网上找到很多帮助。
要清楚,这不是为了删除重复,我没有那个问题,我只是需要防止一些结果显示。
var subCategories = siteCategory.SiteSubCategories.Where(x => x.Active);
string lowestPrice = siteCategory.SiteProducts.Min(x => x.Price).ToString();
我试着做以下事情string lowestPrice = sitecategorysiteproducts . where (!subCategories)。Min(x => x. price).ToString();但我得到一个错误,说Operator '!' cannot be applied to operand of type 'IEnumerable'
我还尝试过多种其他的linq语句组合,太多了,无法列出,所以我只列出我尝试过的对我最有意义的一个。
有人能帮我弄清楚我做错了什么吗?应该使用带. where的lambda。这部分代码应该类似于
siteCategory.SiteProducts
.Where(product => !subCategories.contains(product.Category))
.Min(x => x.Price).ToString()
用适当的方式获取产品的类别。我猜是product.Category
,你需要自己更新那块
我不知道你的数据是如何建模的细节,但假设Product
具有Category
属性。Category
有一个ParentId
可空属性,你可以这样做:
siteProducts
.Where(product => product.Category.ParentId == null)
.Min(product => product.Price)
.ToString();