我创建了一个 XPathNodeIterator,其中包含一些简短的 XML 段(每个段都有一个文件描述):
XPathNodeIterator segments = node.SelectDescendants("Segment", node.NamespaceURI, false);
现在,当尝试循环它们时,似乎每次只选择第一段。这是我尝试过的两个版本的循环(仅以文件/文件类为例):
while (segments.MoveNext())
{
File f = GetSingleFileDataFromSegment(segments.Current);
files.Add(f);
}
另一个尝试:
foreach (XPathNavigator seg in segments)
{
File f = GetSingleFileDataFromSegment(seg);
files.Add(f);
}
当使用 Watch 或 Quickwatch 在循环中查看单个片段时,它看起来应该是,所有不同的片段一次选择一个 - 但最终结果是“文件”包含第一个片段的多个副本。
这是 XPathNodeIterator 的正常行为吗?或者这里缺少什么?我目前正在使用 .NET Framework 3.5。