2012-11-20 108 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