Extends IEnumerable

image_pdfimage_print
   
 

using System;
using System.Collections.Generic;
using System.Text;

using System.Collections;

public class Employee {
    public int currAge;
    public string fName, lName;

    public Employee() { }
    public Employee(string firstName, string lastName, int age) {
        currAge = age;
        fName = firstName;
        lName = lastName;
    }

    public override string ToString() {
        return string.Format("{0}, {1} is {2} years old",
            lName, fName, currAge);
    }
}
public class PeopleCollection : IEnumerable {
    private ArrayList arPeople = new ArrayList();
    public PeopleCollection() { }
    public Employee GetEmployee(int pos) { return (Employee)arPeople[pos]; }
    public void AddEmployee(Employee p) { arPeople.Add(p); }
    public void ClearPeople() { arPeople.Clear(); }
    public int Count { get { return arPeople.Count; } }
    IEnumerator IEnumerable.GetEnumerator() { return arPeople.GetEnumerator(); }
}
class Program {
    static void Main(string[] args) {
        PeopleCollection myPeople = new PeopleCollection();
        myPeople.AddEmployee(new Employee("Homer", "Simpson", 40));
        myPeople.AddEmployee(new Employee("Marge", "Simpson", 38));
        myPeople.AddEmployee(new Employee("Lisa", "Simpson", 9));
        myPeople.AddEmployee(new Employee("Bart", "Simpson", 7));
        myPeople.AddEmployee(new Employee("Maggie", "Simpson", 2));

        foreach (Employee p in myPeople)
            Console.WriteLine(p);
    }
}