Enum by IEnumerable : Enum « Language Basics « C# / C Sharp

C# / C Sharp
1. 2D Graphics
2. Collections Data Structure
3. Components
4. Database ADO.net
5. Development Class
6. Event
7. File Stream
8. GUI Windows Form
9. Language Basics
10. Network
11. Office
12. Regular Expressions
13. Services Event
14. Thread
15. Web Services
16. Windows
17. XML
Microsoft Office Word 2007 Tutorial
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
C# / CSharp Tutorial
ASP.Net
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
PHP
Python
SQL Server / T-SQL
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
C# / C Sharp » Language Basics » EnumScreenshots 
Enum by IEnumerable
Enum by IEnumerable

/*
Learning C# 
by Jesse Liberty

Publisher: O'Reilly 
ISBN: 0596003765
*/
 using System;

 namespace Enumeration
 {
     using System;
     using System.Collections;

     // implements IEnumerable
     class ListBoxTest : IEnumerable
     {
         private string[] strings;
         private int ctr = 0;

         // private nested implementation of ListBoxEnumerator
         private class ListBoxEnumerator : IEnumerator
         {
             // member fields of the nested ListBoxEnumerator class
             private ListBoxTest currentListBox;
             private int index;

             // public within the private implementation
             // thus, private within ListBoxTest
             public ListBoxEnumerator(ListBoxTest currentListBox)
             {
                 // a particular ListBoxTest instance is
                 // passed in, hold a reference to it
                 // in the member variable currentListBox.
                 this.currentListBox = currentListBox;
                 index = -1;
             }

             // Increment the index and make sure the
             // value is valid
             public bool MoveNext()
             {
                 index++;
                 if (index >= currentListBox.strings.Length)
                     return false;
                 else
                     return true;
             }

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

             // Current property defined as the
             // last string added to the listbox
             public object Current
             {
                 get
                 {
                     return(currentListBox[index]);
                 }
             }
         }  // end nested class

         // Enumerable classes can return an enumerator
         public IEnumerator GetEnumerator()
         {
             return (IEnumeratornew ListBoxEnumerator(this);
         }

         // initialize the listbox with strings
         public ListBoxTest(params string[] initialStrings)
         {
             // allocate space for the strings
             strings = new String[8];

             // copy the strings passed in to the constructor
             foreach (string s in initialStrings)
             {
                 strings[ctr++= s;
             }
         }

         // add a single string to the end of the listbox
         public void Add(string theString)
         {
             strings[ctr= theString;
             ctr++;
         }

         // allow array-like access
         public string this[int index]
         {
             get
             {
                 if (index < || index >= strings.Length)
                 {
                     // handle bad index
                 }
                 return strings[index];
             }
             set
             {
                 strings[index= value;
             }
         }

         // publish how many strings you hold
         public int GetNumEntries()
         {
             return ctr;
         }

     }

    public class EnumerationTester
    {
       public void Run()
       {
           // create a new listbox and initialize
           ListBoxTest currentListBox =
               new ListBoxTest("Hello""World");

           // add a few strings
           currentListBox.Add("Who");
           currentListBox.Add("Is");
           currentListBox.Add("John");
           currentListBox.Add("Galt");

           // test the access
           string subst = "Universe";
           currentListBox[1= subst;

           // access all the strings
           foreach (string s in currentListBox)
           {
               Console.WriteLine("Value: {0}", s);
           }
       }

       [STAThread]
       static void Main()
       {
          EnumerationTester t = new EnumerationTester();
          t.Run();
       }
    }
 }

           
       
Related examples in the same category
1. Enumerations:Initialization
2. Enumerations Initialization 2
3. Enumeration Base Types
4. Enum declare and use itEnum declare and use it
5. Demonstrate an enumerationDemonstrate an enumeration
6. Enum ValuesEnum Values
7. The use of an enumeration that defines the positions of the planets in the solar system relative to the SunThe use of an enumeration that defines the positions of the planets in the solar system relative to the Sun
8. Illustrates the use of an enumeration that defines the orbital periods of the first four planets in daysIllustrates the use of an enumeration that defines the orbital periods of the first four planets in days
9. Illustrates the use of an enumeration that defines the orbital periods of the first four planets in days, using a base type of longIllustrates the use of an enumeration that defines the orbital periods of the first four planets in days, using a base type of long
10. how a derived class may override an existing enumeration in a base classhow a derived class may override an existing enumeration in a base class
11. A public enum in one class from another classA public enum in one class from another class
12. Demonstrate an enumeratorDemonstrate an enumerator
13. Demonstrate IDictionaryEnumeratorDemonstrate IDictionaryEnumerator
14. Enumerators and ForeachEnumerators and Foreach
15. Enumerations:Bit Flag Enums 1
16. Enumerations:Bit Flag Enums 2
17. Enumerations:The System.Enum TypeEnumerations:The System.Enum Type
18. Enumerations: The System.Enum Type 2Enumerations: The System.Enum Type 2
w__ww.__j_a__va2_s___._c___o__m | Contact Us
Copyright 2003 - 08 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.