从内部列表中删除项目 - linq

时间:2016-01-13 12:38:36

标签: c# linq

我有 list1 列表,其中包含另一个列表 list2

我必须使用lambda表达式从 list1 list2 中删除项目,其中id = 2。 我该怎么写呢?

eg: list1 -> List<balls>  -> Ball contains list of images.
    list2 -> List<images> -> each image will have an id.

我需要从list1删除某些球的图像(图片ID为1)

2 个答案:

答案 0 :(得分:4)

你可以试试这个:

list1.ForEach(ball =>
    ball.list2.RemoveAll(image => image.Id == 2));

答案 1 :(得分:1)

这样的东西
list1.First(k => k.id == 2)
     .list2.RemoveAt(0);

如果你的id引用了list2,你必须进行循环。

foreach (var item in list1)
{
    item.list2.RemoveAll(k => k.id == 2);
}

或者,

list1.ForEach(item => item.list2.RemoveAll(k => k.id == 2));