繁体   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