Build your own IEnumerator/IEnumerable and use it in foreach loop : IEnumerator « Data Structure « C# / CSharp Tutorial






using System;
using System.Collections;

class LetterEnumerator : IEnumerator
{
   string[] letters;
   int Position = -1;

   public LetterEnumerator(string[] theletters) 
   {
      letters = new string[theletters.Length];
      for (int i = 0; i < theletters.Length; i++)
         letters[i] = theletters[i];
   }

   public object Current                    
   {
      get { return letters[Position]; }
   }

   public bool MoveNext()                   
   {
      if (Position < letters.Length - 1){ 
         Position++; return true; 
      }
      else
         return false;
   }

   public void Reset()                      
   {
      Position = -1;
   }
}

class LetterList : IEnumerable
{
   string[] letters = { "A", "B", "C" };
   public IEnumerator GetEnumerator()
   {
      return new LetterEnumerator(letters);
   }
}

class MainClass
{
   static void Main()
   {
      LetterList mc = new LetterList();

      foreach (string l in mc)
         Console.WriteLine("{0} ", l);

   }
}
A
B
C








11.44.IEnumerator
11.44.1.A simple example of an iterator.
11.44.2.Iterated values can be dynamically constructed.
11.44.3.Use named iterators
11.44.4.Use the Enumerable pattern
11.44.5.Implement IEnumerable and IEnumerator
11.44.6.Define custom enumerators and use foreach to loop through
11.44.7.Build your own IEnumerator/IEnumerable and use it in foreach loop
11.44.8.Circular Iterator
11.44.9.Iteration Sample
11.44.10.Iterator Workflow
11.44.11.IEnumerator and ArrayList, BitArray, Hashtable and array