IEnumerable, IEnumerator : IEnumerable « Collections « ASP.NET Tutorial






<%@ Page Language="C#" %>
<script runat="server">
void Page_Load()
{
  CustomCollection customCollection = new CustomCollection(10);
  
  DemoOutput.Text = "";
  foreach (CustomItem customItem in customCollection)
  {
    DemoOutput.Text += customItem.Index + "<br />";
  }
}

public class CustomCollection : IEnumerable, IEnumerator
{
  private CustomItem[] customItems;
  private int current = -1;

  public CustomCollection(int Count)
  {
    customItems = new CustomItem[Count];
    for (int index = 0; index < Count; index++)
    {
      customItems[index] = new CustomItem(index);
    }
  }

  #region Implementation of IEnumerable
  public IEnumerator GetEnumerator()
  {
    return (IEnumerator) this;
  }
  #endregion

  #region Implementation of IEnumerator
  public void Reset()
  {
    current = -1;
  }

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

  public object Current
  {
    get
    {
      return customItems[current];
    }
  }
  #endregion
}

public class CustomItem
{
  private int index;
  
  public int Index
  {
    get
    {
      return index;
    }
  }
  
  public CustomItem(int Index)
  {
    index = Index;
  }
}
</script>
<html>
  <head>
    <title>Creating a Custom Collection</title>
  </head>
  <body>
    <form id="MainForm" runat="server">
      Output of Looping through a Custom Collection
      <br />
      <asp:literal id="DemoOutput" runat="server" />
    </form>
  </body>
</html>








7.6.IEnumerable
7.6.1.Using CustomCollection
7.6.2.IEnumerable, IEnumerator
7.6.3.IEnumerable, IEnumerator (VB)