IEnumerable和IEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单的迭代,IEnumerable和IEnumerable<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); } } } }