,以便消除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