,以便消除XElements,我有一個bug,除去在foreach循環
foreach (XElement x in items.Elements("x"))
{
XElement result = webservice.method(x);
if (/*condition based on values in result*/)
{
x.Remove();
}
}
的問題是,調用x.Remove()改變的foreach這樣,如果有兩個元素(「X」),並且第一個被刪除,循環不會到達第二個x元素。
那麼我該如何循環呢?還是應該以另一種方式重寫?
其實我剛纔修改的foreach是「的foreach(在items.Elements的XElement X(」 X「)。反向())」,並且似乎正常工作的問題之前是在foreach移動索引向上,並且「刪除」將所有內容都向下移動,導致項目被跳過。顛倒秩序似乎是有道理的。但是,如果有人有更好的解決方案,我會將問題解決。 – CaffGeek 2009-10-07 17:00:48
我做了一個循環,我不得不做一個我 - 如果它實際上刪除了一個項目來彌補索引。儘管如此,你的方式似乎並不是一個壞的選擇,但我不是一個.NET專家,所以我有點懷疑我說的是什麼,哈哈。 – Xaisoft 2009-10-07 17:09:28
轉換爲C#3.0。有沒有C#版本3.5(詳細信息請參閱此文章http://stackoverflow.com/questions/247621/what-are-the-correct-version-numbers-for-c) – Vaccano 2009-10-16 19:46:25