[英]Which is faster for removing items from a List<object> - RemoveAll or a foreach loop?
[英]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.