=================================================简单的实现IEnumerable接口

------------------------------------Person.cs

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Collections;namespaceConsoleApplication6{publicclassPerson{publicstringName{get;set;}}}

------------------------------------PerAll.cs

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Collections;namespaceConsoleApplication6{publicclassPerAll:IEnumerable{Person[]p=newPerson[3];//实例化长度为三个的数组publicPerAll()//构造函数初始化数组{p[0]=newPerson{Name="张三"};p[1]=newPerson{Name="李四"};p[2]=newPerson{Name="王五"};}publicIEnumeratorGetEnumerator()//迭代器{returnp.GetEnumerator();//直接调用数组自带的的GetEnumerator。(简单委托请求到System.Array)}}}

------------------------------------主程序

PerAllp=newPerAll();//实例化对象//-------------------第一种方式遍历foreach(Personiteminp){Console.WriteLine(item.Name);}//-------------------第二中方式遍历IEnumeratorie=p.GetEnumerator();while(ie.MoveNext()){Console.WriteLine((ie.CurrentasPerson).Name);}//普通数组遍历string[]str=newstring[3]{"张辽","张合","张飞"};IEnumeratorstrie=str.GetEnumerator();while(strie.MoveNext()){Console.WriteLine(strie.Currentasstring);}