Collection.GetEnumerator Method ()


Returns a reference to an enumerator object, which is used to iterate over a Collection object.

Namespace:   Microsoft.VisualBasic
Assembly:  Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)

public IEnumerator GetEnumerator()

Return Value

Type: System.Collections.IEnumerator

Returns a reference to an enumerator object, which is used to iterate over a Collection object.

The For Each...Next Statement (Visual Basic) calls GetEnumerator to obtain an enumerator object to support iteration over a collection's elements. Normally, you use a For Each...Next loop to traverse a collection or array, and you do not need to call GetEnumerator explicitly.

If you need closer control over the iteration than the For Each...Next statements provide, you can use the GetEnumerator method to perform a customized traversal. The following are some cases in which you might need to do this.

  • You might want to return to the beginning of the collection and start the iteration again before it is finished.

  • You might want to skip over one or more elements for a variety of reasons.

  • You might need to change the elements of the collection in the middle of a traversal. In this case you must obtain a new enumerator object because the previous one is invalidated.

The following example shows how to use GetEnumerator to retrieve all the elements of a Collection object.

Dim customers As New Collection
' Insert code to add elements to the customers collection.
Dim custEnum As IEnumerator = customers.GetEnumerator()
Dim thisCustomer As Object
While custEnum.MoveNext()
    thisCustomer = custEnum.Current()
    ' Insert code to process this element of the collection.
End While

GetEnumerator constructs and returns an enumerator object, which implements the IEnumerator interface of the System.Collections namespace. The enumerator object exposes the Current property and the MoveNext and Reset methods. For more information, see For Each...Next Statement (Visual Basic).

.NET Framework
Available since 1.1
Available since 2.0
Return to top