
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Creating Custom Enumerators
|
331
Discussion
Iterators provide an easy method of moving from item to item within an object using
the familiar
foreach loop construct. The object can be an array, a collection, or some
other type of container. This is similar to using a
for loop to manually iterate over
each item contained in an array. In fact, an iterator can be set up to use a
for loop, or
any other looping construct for that matter, as the mechanism for yielding each item
in the object. In fact, you do not even have to use a looping construct. The following
code is perfectly valid:
public static IEnumerable<int> GetValues( )
{
yield return 10;
yield return 20;
yield return 30;
yield return 100;
}
With the foreach loop, you do not have to worry about moving the current element
pointer to the beginning of the list or even about incrementing this pointer as you
move through the list. In addition, you do not have to watch for the end of the list,
since you cannot go beyond the bounds of the list. The best part about the
foreach
loop and iterators is that you do not have to know how to access the list of elements
within its container—indeed, you do not even have to have access to the list of ele-
ments; the iterator member(s) implemented on the container do this for you.
The
Container class contains ...