XPathNodeIterator.GetEnumerator Method ()

 

Returns an IEnumerator object to iterate through the selected node set.

Namespace:   System.Xml.XPath
Assembly:  System.Xml (in System.Xml.dll)

public virtual IEnumerator GetEnumerator()

Return Value

Type: System.Collections.IEnumerator

An IEnumerator object to iterate through the selected node set.

The enumerator is positioned on the current position of the XPathNodeIterator object.

There are two ways to iterate over an XPathNavigator collection by using the XPathNodeIterator class.

One way is to use the MoveNext method and then call Current to get the current XPathNavigator instance, as in the following example:

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

Another way is to use a foreach loop to call the GetEnumerator method and use the returned IEnumerator interface to enumerate the nodes, as in the following example:

foreach (XPathNavigator n in nodeIterator)
    Console.WriteLine(n.LocalName);

You should either use the MoveNext method and Current or use the GetEnumerator method. Combining these two approaches can cause unexpected results. For example, if the MoveNext method is called first, and then the GetEnumerator method is called in the foreach loop, the foreach loop will not start enumerating the results from the beginning of the collection, but from the position after the Current method.

.NET Framework
Available since 2.0
Silverlight
Available since 4.0
Return to top
Show: