对于IEnumerable的一点理解

  IEnumerableIEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单的迭代,IEnumerableIEnumerable<T>接口是.NET Framework中最基本的集合访问器,这两个接口对于LINQ的理解是非常重要的。

  在网上看了些这方面的东西,在此对自己看到的一些这方面知识进行下总结。废话不多说,直接上代码。

namespace IEnumeratorSample
{
    using System;
    using System.Collections;
    using System.Collections.Generic;

    internal class Person : IEnumerable<PersonEnum>
    {
        private ICollection<PersonEnum> PersonList { get; set; }

        public Person()
        {
            this.PersonList = new List<PersonEnum>();
        }

        public IEnumerator GetEnumerator()//实现接口
        {
            return this.PersonList.GetEnumerator();
        }

        public void AddItem(PersonEnum entity)
        {
            if (PersonList == null)
            {
                PersonList = new List<PersonEnum>();
            }
            PersonList.Add(entity);
        }

        public bool Remove(PersonEnum entity)
        {
            return PersonList.Remove(entity);
        }

        IEnumerator<PersonEnum> IEnumerable<PersonEnum>.GetEnumerator()
        {
            return this.PersonList.GetEnumerator();
        }
    }

    internal class PersonEnum
    {
        public string Name;

        public string Age;

        public PersonEnum(string name, string age)
        {
            Name = name;

            Age = age;
        }
    }

    internal class Program
    {
        private static void Main(string[] args)
        {
            PersonEnum one = new PersonEnum("leo", "23");
            PersonEnum two = new PersonEnum("Ray", "25");
            Person persons = new Person();
            persons.AddItem(one);
            persons.AddItem(two);
            foreach (PersonEnum person in persons)
            {
                Console.WriteLine(person.Name);
            }
        }
    }
}

 

posted on 2013-10-25 14:36  风扬sky  阅读(353)  评论(0编辑  收藏  举报

导航