迭代器的实现都是以数组来实现的,代码如下:
//Person类namespace CA_LINQ
{
    class Person:IEnumerable
    {
        public String Name;
        public String Age;
        private Person[] per;
        public Person(String name,String age)
        {
            Name = name;
            Age = age;
        }
        public Person(Person[] array)
        {
            //迭代对象
            per = new Person[array.Length];
            for (int i = 0; i < array.Length; i++)
            {
                per[i] = array[i];//数组赋值
            }
        }        #region IEnumerable 成员        public IEnumerator GetEnumerator()
        {
            return new PersonEnum(per);
        }        #endregion
    }
}
//实现foreach语句的PersonEnum类namespace CA_LINQ
{
    class PersonEnum: IEnumerator
    {
        public Person[] _per;    //实现数组
        int position = -1;    //设置指针
        public PersonEnum(Person[] list)    //构造方法
        {
            _per = list;
        }
        public Boolean MoveNext()    //实现向前移动
        {
            position ++;
            return (position < _per.Length);
        }
        public void Reset()    //位置重置
        {
            position = -1;
        }        #region IEnumerator 成员        public object Current
        {
            get
            {
                try
                {
                    return _per[position];    //返回对象
                }
                catch(IndexOutOfRangeException)    //捕捉异常
                {
                    throw new InvalidOperationException();
                }
            }
          
        }        #endregion
    }
}//主类namespace CA_LINQ
{
    class Program
    {
        static void Main(string[] args)
        {
            Person[] MyPerson = new Person[2]//创建两个Person对象
            {
                new Person("陈湖","25"),
                new Person("陈在下","24"),
            };
            Person personlist = new Person(MyPerson);
            foreach (Person p in personlist)
            {
                Console.WriteLine("姓名:" + p.Name + ",年龄:" + p.Age);
            }
            Console.ReadKey();
        }
    }
}如果将foreach (Person p in personlist)  替换为 foreach (Person p in MyPerson )
也是可以的,所以说在这里实现迭代模式是不是多余的呢?还是有其他作用呢?