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();