现在我有一个 ListA 和 ListB 。
ListA 将包含类型为 customTypeA 的对象列表,而 ListB 将包含类型为 customTypeB的对象列表
customTypeA 将有两个字段 AiD 和 BiD
customTypeB 为ICollection
,其中包含两个字段 BiD 和状态
我是否知道如何构建一个lambda表达式,如果{strong> ListB 中的item
状态>,则删除 ListA 中的item
1} strong> == 2且两个item
具有相同的 BiD ?
类似于以下内容:
foreach(var item in ListB)
{
if (item.Status == 2)
{
ListA.RemoveAll(x=>x.BiD == item.BiD);
}
}
答案 0 :(得分:2)
不涉及创建新列表的简单方法是:
ListA.RemoveAll(a => ListB.Any(b => a.BiD == b.BiD && b.Status == 2));
在单词中,这意味着如果ListA
中的某个元素具有相同的ListB
且BiD
等于2,则会删除Status
的元素。 / p>