0

我有两个对象列表,我一直在学习如何从一个列表中删除项目,如果它们出现在另一个列表中。

我想出了这个:

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

ResultantPoliciesTable这可行,但是如果调用的对象的整数属性ManagementID等于我将提供的值,那么我不希望删除该对象。

谁能帮我扩展这个查询来实现这个?

4

2 回答 2

3

尝试以下操作:

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

该变量item将填充您的每条记录ResultantPoliciesTable,如果您的结果方法返回true,它将被删除。因此,添加检查以查看是否item.ManagementID需要排除应该足以满足您的需求。

于 2013-04-15T11:13:59.033 回答
0
result.ResultantPoliciesTable
      .RemoveAll(item => 
                      result.PoliciesTable
                            .Where(i => i.ManagementID!=myId)
                            .Select(f => f.PolicyName)
                            .Contains(item.PolicyName)
                );
于 2013-04-15T11:18:09.920 回答