Returns an enumerator that iterates through the collection.
Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.
An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and its behavior is undefined.