热门IT资讯网

IEnumerable接口与IEnumerator接口

发表于:2024-11-28 作者:热门IT资讯网编辑
编辑最后更新 2024年11月28日,通过一个例子来看-------------------------------------------------------Student.csusing System;using System.C

通过一个例子来看

-------------------------------------------------------Student.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections;namespace ConsoleApplication6{    public class Student:IEnumerable    {        //数组        public string[] s;        //索引器        public int i;        public Student(string[] str)//构造函数,初始化数组        {            s = str;        }        public IEnumerator GetEnumerator()//迭代器        {            return s.GetEnumerator();        }    }}

-------------------------------------------------------StiAll.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Collections;namespace ConsoleApplication6{    public class StiAll:IEnumerator    {        //student对象        Student s;        //游标        int i = -1;        public StiAll(Student ss)//构造函数,初始化student对象        {            this.s = ss;        }         public object Current//获取当前的项(只读属性)        {            get { return s.s[i]; }        }        public bool MoveNext()//将游标的位置向前移动        {            if (i

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

 Student s = new Student(new string[] { "吕蒙", "周泰", "黄盖" });//实例化Student对象            //第一种方式遍历            foreach (var item in s)            {                Console.WriteLine(item);//输出吕蒙,周泰,黄盖            }            //第二种方式遍历            StiAll sa = new StiAll(s);            while (sa.MoveNext())            {                Console.WriteLine(sa.Current);//输出吕蒙,周泰,黄盖            }            Console.ReadKey();
0