C# 使用LINQ从列表中删除项目(removeAll)
我有两个对象列表,我一直在学习如何从一个列表中删除出现在另一个列表中的项目 我想到了这个:C# 使用LINQ从列表中删除项目(removeAll),c#,linq-to-entities,C#,Linq To Entities,我有两个对象列表,我一直在学习如何从一个列表中删除出现在另一个列表中的项目 我想到了这个: result.ResultantPoliciesTable.RemoveAll(item => result.PoliciesTable.Select (f => f.PolicyName).Contains(item.PolicyName)); 这是可行的,但如果ResultantPoliciesTable中名为ManagementID的对象的整数属性等于我将提供的值,则我不希望删除此对象
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));
变量项
将由结果policiestable
中的每条记录填充,如果生成的方法返回true
,它将被删除。因此,添加检查以查看是否需要排除item.ManagementID
,应该足以满足您的需要。请尝试以下操作:
int doNotRemoveID = 7862384732;
result.ResultantPoliciesTable.RemoveAll(
item => item.ManagementID != doNotRemoveID &&
result.PoliciesTable.Select(f => f.PolicyName).Contains(item.PolicyName));
result.ResultantPoliciesTable
.RemoveAll(item =>
result.PoliciesTable
.Where(i => i.ManagementID!=myId)
.Select(f => f.PolicyName)
.Contains(item.PolicyName)
);
变量
项
将由结果policiestable
中的每条记录填充,如果生成的方法返回true
,它将被删除。因此,添加检查以查看是否需要排除项.ManagementID
应足以满足您的需要。现在不删除任何结果,则所有属性都已排除ManagementID
,或者他们的PolicyName
在result.PoliciesTable
中不存在。很抱歉,我运行的是旧版本,因此得到了奇怪的结果。感谢您的帮助,这非常有效现在不会删除任何结果,或者所有属性都已排除您的ManagementID
,或者它们的PolicyName
在result.policyStable
中不存在。对不起,我运行的是旧版本,因此得到了奇怪的结果。谢谢你的帮助这很有效
result.ResultantPoliciesTable
.RemoveAll(item =>
result.PoliciesTable
.Where(i => i.ManagementID!=myId)
.Select(f => f.PolicyName)
.Contains(item.PolicyName)
);