簡體   English   中英

從列表中的 IQueryable 中刪除項目

[英]Remove item from IQueryable from List

我的數據庫ProductsPremiumProducts中有 2 個表用於 ASP Net 應用程序。

我用一個簡單的查詢檢索產品

IQueryable<Product> query = from p in myDataContext.Products select p;

我有一個PremiumProducts列表(其中包含Product的 ID)。 我試圖從上面的查詢中刪除PremiumProducts列表中的 ID,但不確定是否有簡單的方法,或者我是否需要先將所有PremiumProducts轉換為Product 我試過這個

List<PremiumProducts> premiumProducts;

query = from p in query where (premiumProducts.Contains(p.ID)) select p;

但這當然會帶來各種鑄造錯誤。

有沒有一種簡單的方法可以從上面的query中刪除PremiumProducts ,或者我是否需要將PremiumProducts轉換為Product ,存儲 ID,然后嘗試使用這些 ID 刪除查詢?

而不是:

query = from p in query where (premiumProducts.Contains(p.ID)) select p;

我會建議:

query = from p in query where (!premiumProducts.Select(z => z.ID).Contains(p.ID)) select p;

主要區別:

  1. 使用! (因為你想排除那些在premiumProducts )。
  2. 使用premiumProducts.Select(z => z.ID)來確保包含是針對ID而不是 object (只是避免您的鑄造問題)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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