- class Program
- {
- public static voidMain(string[] args)
- {
- Console.WriteLine("Hello World!");
- // TODO: Implement Functionality HereClass2 classs=new Class2();
- //GetEnumerator 默认迭代器
- foreach(intitemin classs)
- {
- Console.WriteLine("默认迭代器GetEnumerator "+item);
- }
- //GetMyData 迭代器,自定义迭代器, 这里报错暂时没找到原因
- // foreach(int item in classs.GetMyData(true))
- // {
- // Console.WriteLine("自命名迭代器GetMyData "+item);
- // }
- //自定义命令迭代器也可直接用接口来实现IEnumerator mydata= classs.GetMyData(false);
- while(mydata.MoveNext())
- {
- Console.WriteLine("自命名迭代器GetMyData "+mydata.Current);
- }
- Console.Write("Press any key to continue . . . ");
- Console.ReadKey(true);
- }
- }
- public class Class2:IEnumerable
- {
- int[] myselfdata=new int[]{1,2,3};
- public Class2()
- {
- }
- public IEnumerator GetEnumerator()
- {
- yield returnmyselfdata[0];
- yield returnmyselfdata[1];
- yield returnmyselfdata[2];
- //或者
- // foreach( int item in myselfdata)
- // {
- // yield return item;
- // }
- }
- publicIEnumerator GetMyData(bool des)
- {
- if(des)
- {
- yield returnmyselfdata[0];
- yield returnmyselfdata[1];
- yield returnmyselfdata[2];
- }
- else
- {
- yield returnmyselfdata[2];
- yield returnmyselfdata[1];
- yield returnmyselfdata[0];
- }
- }
- }
来源: http://www.bubuko.com/infodetail-1967791.html