C# 如何从依赖于lamba表达式中另一个列表的列表中删除
现在我有一个列表a和列表b ListA将有类型为customTypeA的对象列表C# 如何从依赖于lamba表达式中另一个列表的列表中删除,c#,lambda,C#,Lambda,现在我有一个列表a和列表b ListA将有类型为customTypeA的对象列表,ListB将有类型为customTypeB的对象列表 customTypeA将有两个字段AiD和BiD customTypeB是ICollection,它将有两个字段BiD和Status 如果列表B中的项具有状态==2,并且两个项具有相同的出价,我可以知道如何构造一个lambda表达式来删除列表a中的项 类似如下: foreach(var item in ListB) { if (item.Status =
,ListB将有类型为customTypeB的对象列表 customTypeA将有两个字段AiD和BiD
customTypeB是
ICollection
,它将有两个字段BiD和Status
如果列表B中的项
具有状态==2,并且两个项
具有相同的出价,我可以知道如何构造一个lambda表达式来删除列表a中的项
类似如下:
foreach(var item in ListB)
{
if (item.Status == 2)
{
ListA.RemoveAll(x=>x.BiD == item.BiD);
}
}
一种不涉及创建新列表的简单方法是:
ListA.RemoveAll(a => ListB.Any(b => a.BiD == b.BiD && b.Status == 2));
换句话说,这意味着您删除了
ListA
的一个元素,如果ListB
中有一个元素具有相同的BiD
,并且状态等于2。很抱歉缺少信息。我的ListB
是ICollection,因此不存在用于it@Mr.SuicideSheep没问题,只需使用Any
LINQ方法即可。