![](/img/trans.png)
[英]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.