簡體   English   中英

防止項目顯示在字符串LINQ中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM