[Visual Basic] Public Function GetEnumerator() As StringEnumerator [C#] public StringEnumerator GetEnumerator(); [C++] public: StringEnumerator* GetEnumerator(); [JScript] public function GetEnumerator() : StringEnumerator;
Enumerators are intended to be used only to read data in the collection. Enumerators cannot be used to modify the underlying collection.
The enumerator does not have exclusive access to the collection.
When an enumerator is created, it takes a snapshot of the current state of the collection. If changes are made to the collection, such as adding, modifying or deleting elements, the snapshot gets out of sync and the enumerator throws an InvalidOperationException. Two enumerators created from the same collection at the same time can have different snapshots of the collection.
The enumerator is in an invalid state if it is positioned before the first element in the collection or after the last element in the collection. Whenever the enumerator is in an invalid state, calling Current throws an exception.
Initially, the enumerator is positioned before the first element in the collection. Reset also brings the enumerator back to this position. Therefore, after an enumerator is created or after a Reset, MoveNext must be called to advance the enumerator to the first element of the collection before reading the value of Current.
Current returns the same object until either MoveNext or Reset is called.
After the end of the collection is passed, the enumerator is again in an invalid state and calling MoveNext returns false. Calling Current throws an exception if the last call to MoveNext returned false.
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family