public static void Main()
private static void ListColors()
var colors = new AllColors();
foreach (Color theColor in colors)
Console.Write(theColor.Name + " ");
public class AllColors : System.Collections.IEnumerable
new Color() { Name = "red" },
new Color() { Name = "blue" },
new Color() { Name = "green" }
public System.Collections.IEnumerator GetEnumerator()
return new ColorEnumerator(_colors);
private class ColorEnumerator : System.Collections.IEnumerator
private int _position = -1;
public ColorEnumerator(Color[] colors)
object System.Collections.IEnumerator.Current
return _colors[_position];
bool System.Collections.IEnumerator.MoveNext()
return (_position < _colors.Length);
void System.Collections.IEnumerator.Reset()
public string Name { get; set; }