通过


XPathNodeIterator.GetEnumerator 方法

定义

返回一个 IEnumerator 对象以循环访问所选节点集。

public:
 virtual System::Collections::IEnumerator ^ GetEnumerator();
public virtual System.Collections.IEnumerator GetEnumerator();
abstract member GetEnumerator : unit -> System.Collections.IEnumerator
override this.GetEnumerator : unit -> System.Collections.IEnumerator
Public Overridable Function GetEnumerator () As IEnumerator

返回

IEnumerator 循环访问所选节点集的对象。

实现

注解

枚举器位于对象的当前位置 XPathNodeIterator

使用类循环访问 XPathNavigator 集合 XPathNodeIterator 有两种方法。

一种方法是使用 MoveNext 该方法,然后调用 Current 以获取当前 XPathNavigator 实例,如以下示例所示:

while (nodeIterator.MoveNext())
{
    XPathNavigator n = nodeIterator.Current;
    Console.WriteLine(n.LocalName);
}
While nodeIterator.MoveNext()
    Dim n As XPathNavigator = nodeIterator.Current
    Console.WriteLine(n.LocalName)
End While

另一 foreach 种方法是使用循环调用 GetEnumerator 该方法,并使用返回 IEnumerator 的接口枚举节点,如以下示例所示:

foreach (XPathNavigator n in nodeIterator)
    Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
    Console.WriteLine(nav.LocalName)
Next

应使用MoveNext该方法或使用CurrentGetEnumerator该方法。 结合这两种方法可能会导致意外结果。 例如,如果 MoveNext 首先调用该方法,然后在 GetEnumerator 循环中 foreach 调用该方法,则 foreach 循环不会从集合的开头开始枚举结果,而是从方法之后 Current 的位置开始枚举结果。

适用于

另请参阅