다음을 통해 공유


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

선택된 노드 집합을 반복하는 IEnumerator 개체입니다.

구현

설명

열거자는 개체의 현재 위치에 배치됩니다 XPathNodeIterator .

클래스를 사용하여 컬렉션을 반복 XPathNavigator 하는 방법에는 두 가지가 있습니다 XPathNodeIterator .

한 가지 방법은 다음 예제와 같이 메서드를 사용한 MoveNext 다음 호출 Current 하여 현재 XPathNavigator 인스턴스를 가져오는 것입니다.

while (nodeIterator->MoveNext())
{
    XPathNavigator^ n = nodeIterator->Current;
Console::WriteLine(n->LocalName);
}
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 인터페이스를 사용하여 노드를 열거하는 것입니다.

for each (XPathNavigator^ n in nodeIterator)
Console::WriteLine(n->LocalName);
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 의 위치에서 결과를 열거하기 시작하지 않습니다.

적용 대상

추가 정보