using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace 代码清单4._6
{
    public class Employees : IEnumerable
    {
        public ArrayList EmployeeNames;//数组列表
        public Employees()
        {
            EmployeeNames = new ArrayList();//实例化数组对象
        }
        public void Add(string name)
        {
            EmployeeNames.Add(name);
        }
        public void Remove(string name)
        {
            EmployeeNames.Remove(name);
        }
        public IEnumerator GetEnumerator()
        {
            return new EmployeesEnumerator(this);
        }
    }
    public class EmployeesEnumerator : IEnumerator
    {
        private int position = -1;
        private Employees employees;
        public EmployeesEnumerator(Employees es)
        {
            this.employees = es;
        }
        public bool MoveNext()
        {
            if (position < employees.EmployeeNames.Count - 1)
            {
                position++;
                return true;
            }
            else
            {
                return false;
            }
        }
        public void Reset()
        {
            position = -1;
        }
        public object Current
        {
            get
            {
                return employees.EmployeeNames[position];
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Employees e = new Employees();
            e.Add("张三");
            e.Add("李四");
            e.Add("王五");
            e.Remove("李四");
            foreach(string i in e)
            {
                Console.WriteLine(i);
            }
            Console.ReadLine();
        }
    }
}