IEnumerable接口与IEnumerator接口
通过一个例子来看
-------------------------------------------------------Student.cs
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Collections;namespaceConsoleApplication6{publicclassStudent:IEnumerable{//数组publicstring[]s;//索引器publicinti;publicStudent(string[]str)//构造函数,初始化数组{s=str;}publicIEnumeratorGetEnumerator()//迭代器{returns.GetEnumerator();}}}
-------------------------------------------------------StiAll.cs
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Collections;namespaceConsoleApplication6{publicclassStiAll:IEnumerator{//student对象Students;//游标inti=-1;publicStiAll(Studentss)//构造函数,初始化student对象{this.s=ss;}publicobjectCurrent//获取当前的项(只读属性){get{returns.s[i];}}publicboolMoveNext()//将游标的位置向前移动{if(i<s.s.Length-1)//如果在s数组的长度范围之内就返回true{i++;returntrue;}else{returnfalse;}}publicvoidReset()//初始化游标{i=-1;}}}
-------------------------------------------------------主程序
Students=newStudent(newstring[]{"吕蒙","周泰","黄盖"});//实例化Student对象//第一种方式遍历foreach(varitemins){Console.WriteLine(item);//输出吕蒙,周泰,黄盖}//第二种方式遍历StiAllsa=newStiAll(s);while(sa.MoveNext()){Console.WriteLine(sa.Current);//输出吕蒙,周泰,黄盖}Console.ReadKey();
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。