从linq结果集中删除项目

时间:2012-11-20 11:45:25

标签: c# linq

我使用以下代码:

var images = from pic in slidePart.Slide.Descendants<DocumentFormat.OpenXml.Presentation.Picture>()
             select pic;

foreach (var image in images)
       image.Remove();

问题在于循环只执行一次而图像包含多个对象。如何调用image.Remove所有对象。

1 个答案:

答案 0 :(得分:1)

试试这个:

slidePart
    .Slide
    .Descendants<DocumentFormat.OpenXml.Presentation.Picture>()
    .ToList()
    .ForEach(pic => pic.Remove());

为什么.ToList()致电?因为您需要确保不要修改正在迭代的集合。