次の方法で共有


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 配置されます。

クラスを使用XPathNodeIteratorしてコレクションを反復処理するにはXPathNavigator、2 つの方法があります。

1 つの方法は、次の例のように、メソッドをMoveNext使用し、現在のインスタンスをXPathNavigator取得するために呼び出Currentす方法です。

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

もう 1 つの方法は、次の例のように、ループを 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 使用するか、 Current メソッドを使用する GetEnumerator 必要があります。 これら 2 つの方法を組み合わせると、予期しない結果が発生する可能性があります。 たとえば、メソッドが最初に MoveNext 呼び出され、そのメソッド GetEnumerator がループ内で foreach 呼び出された場合、 foreach ループはコレクションの先頭からではなく、メソッドの後の位置から結果の列挙を Current 開始します。

適用対象

こちらもご覧ください