[英]Prevent item from showing up in string LINQ
我有一個基於類別產品的價格列表。 我需要確保這些子類別中的產品價格沒有出現在此列表中,而是顯示出來。 子類別和類別位於數據庫的同一表中,唯一的區別是,子類別將具有一個父ID,以表明它是子代。
我有這2條LINQ語句,我需要以某種方式將它們綁在一起,但我做對了。 也許我並沒有嘗試以正確的方式進行操作,但是我對LINQ的經驗還不是很豐富,而且我還無法在線找到很多幫助。
需要明確的是,這並不是要刪除重復項,我沒有這個問題,我只需要阻止某些結果出現即可。
var subCategories = siteCategory.SiteSubCategories.Where(x => x.Active);
string lowestPrice = siteCategory.SiteProducts.Min(x => x.Price).ToString();
我試圖做以下字符串lowestPrice = siteCategory.SiteProducts.Where(!subCategories).Min(x => x.Price).ToString(); 但我收到一個錯誤,說Operator '!' cannot be applied to operand of type 'IEnumerable'
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.