簡體   English   中英

使用LINQ從列表中刪除項目(removeAll)

[英]Removing items from a list with LINQ (removeAll)

我有兩個對象列表,而且我一直在學習如何從一個列表中刪除項目(如果它們出現在另一個列表中)。

我想出了這個:

result.ResultantPoliciesTable.RemoveAll(item => result.PoliciesTable.Select
(f => f.PolicyName).Contains(item.PolicyName));

這是可行的,但是如果ResultantPoliciesTable對象的名為ManagementID的整數屬性等於我將提供的值,則我不希望刪除該對象。

誰能幫我擴展此查詢以實現這一目標?

請嘗試以下操作:

int doNotRemoveID = 7862384732;
result.ResultantPoliciesTable.RemoveAll(
    item => item.ManagementID != doNotRemoveID && 
            result.PoliciesTable.Select(f => f.PolicyName).Contains(item.PolicyName));

可變item將用ResultantPoliciesTable每條記錄填充,如果結果方法返回true ,則將其刪除。 因此,添加檢查以查看是否需要排除item.ManagementID應該足以滿足您的需求。

result.ResultantPoliciesTable
      .RemoveAll(item => 
                      result.PoliciesTable
                            .Where(i => i.ManagementID!=myId)
                            .Select(f => f.PolicyName)
                            .Contains(item.PolicyName)
                );

暫無
暫無

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

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