Поделиться через


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 или Current использовать этот GetEnumerator метод. Объединение этих двух подходов может привести к непредвиденным результатам. Например, если MoveNext метод вызывается сначала, а затем GetEnumerator вызывается метод в foreach цикле, foreach цикл не начнет перечислять результаты из начала коллекции, а от позиции после Current метода.

Применяется к

См. также раздел