2012-11-20 72 views
1

卸下物品我使用以下代码:从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

尝试'foreach(var images in images.ToList())' –

+0

images.All(i => i.remove()); – Sando

+0

你有例外吗? –

回答

1

试试这个:

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

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

+0

并且因为'ForEach'不适用于'IEnumerable'。 – davenewza

+0

@davenewza:部分属实。 'ForEach'不可用,但主要原因正如我所描述的。 – Spontifixus

+1

感谢@Spontifixus的帮助,非常好! :) – Ali