Enumerators and Foreach : 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 
Enumerators and Foreach
Enumerators and Foreach

/*
A Programmer's Introduction to C# (Second Edition)
by Eric Gunnerson

Publisher: Apress  L.P.
ISBN: 1-893115-62-3
*/
// 19 - Indexers and Enumerators\Enumerators and Foreach
// copyright 2000 Eric Gunnerson
using System;
using System.Collections;

// Note: This class is not thread-safe
class IntList: IEnumerable
{
    int[] values = new int[10];
    int allocated = 10;
    int count = 0;
    int revision = 0;
    
    public void Add(int value)
    {
        // reallocate if necessary
        if (count + == allocated)
        {
            int[] newValues = new int[allocated * 2];
            for (int index = 0; index < count; index++)
            {
                newValues[index= values[index];
            }
            allocated *= 2;
        }        
        values[count= value;
        count++;
        revision++;
    }
    
    public int Count
    {
        get
        {
            return(count);
        }
    }
    
    void CheckIndex(int index)
    {
        if (index >= count)
        throw new ArgumentOutOfRangeException("Index value out of range");
    }
    
    public int this[int index]
    {
        get
        {
            CheckIndex(index);
            return(values[index]);
        }
        set
        {
            CheckIndex(index);
            values[index= value;
            revision++;
        }
    }
    
    public IEnumerator GetEnumerator()
    {
        return(new IntListEnumerator(this));
    }
    
    internal int Revision
    {
        get
        {
            return(revision);
        }
    }
}

class IntListEnumerator: IEnumerator
{
    IntList    intList;
    int revision;
    int index;
    
    internal IntListEnumerator(IntList intList)
    {
        this.intList = intList;
        Reset();
    }
    
    public bool MoveNext()
    {
        index++;
        if (index >= intList.Count)
        return(false);
        else
        return(true);
    }
    
    public object Current
    {
        get
        {
            if (revision != intList.Revision)
            throw new InvalidOperationException("Collection modified while enumerating.");
            return(intList[index]);
        }
    }
    
    public void Reset()
    {
        index = -1;
        revision = intList.Revision;
    }
}

public class EnumeratorsandForeach {
    public static void Main()
    {
        IntList list = new IntList();
        
        list.Add(1);
        list.Add(55);
        list.Add(43);
        
        foreach (int value in list)
        {
            Console.WriteLine("Value = {0}", value);
        }
        
        foreach (int value in list)
        {
            Console.WriteLine("Value = {0}", value);
            list.Add(124);
        }
    }
}

           
       
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 by IEnumerable Enum by IEnumerable
7. Enum ValuesEnum Values
8. 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
9. 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
10. 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
11. 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
12. A public enum in one class from another classA public enum in one class from another class
13. Demonstrate an enumeratorDemonstrate an enumerator
14. Demonstrate IDictionaryEnumeratorDemonstrate IDictionaryEnumerator
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
www_.__j__a_v___a2__s.__c__om__ | Contact Us
Copyright 2003 - 08 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.