对于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);

            }

        }

    }

}

 

你可能感兴趣的:(enum)