如何从依赖于lambda表达式中的另一个列表的列表中删除

时间:2014-02-12 10:38:35

标签: c# lambda

现在我有一个 ListA ListB

ListA 将包含类型为 customTypeA 的对象列表,而 ListB 将包含类型为 customTypeB的对象列表

customTypeA 将有两个字段 AiD BiD
customTypeB ICollection,其中包含两个字段 BiD 状态

我是否知道如何构建一个lambda表达式,如果{strong> ListB 中的item 状态,则删除 ListA 中的item == 2且两个item具有相同的 BiD

类似于以下内容:

foreach(var item in ListB)
{
    if (item.Status == 2)
    {
        ListA.RemoveAll(x=>x.BiD == item.BiD);
    }
}

1 个答案:

答案 0 :(得分:2)

不涉及创建新列表的简单方法是:

ListA.RemoveAll(a => ListB.Any(b => a.BiD == b.BiD && b.Status == 2));

在单词中,这意味着如果ListA中的某个元素具有相同的ListBBiD等于2,则会删除Status的元素。 / p>