=================================================简单的实现IEnumerable接口
------------------------------------Person.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace ConsoleApplication6
{
public class Person
{
public string Name { get; set; }
}
}
------------------------------------PerAll.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace ConsoleApplication6
{
public class PerAll:IEnumerable
{
Person[] p = new Person[3];//实例化长度为三个的数组
public PerAll()//构造函数初始化数组
{
p[0] = new Person { Name = "张三" };
p[1] = new Person { Name = "李四" };
p[2] = new Person { Name = "王五" };
}
public IEnumerator GetEnumerator()//迭代器
{
return p.GetEnumerator();//直接调用数组自带的的GetEnumerator。(简单委托请求到System.Array)
}
}
}
------------------------------------主程序
PerAll p = new PerAll();//实例化对象
//-------------------第一种方式遍历
foreach (Person item in p)
{
Console.WriteLine(item.Name);
}
//-------------------第二中方式遍历
IEnumerator ie = p.GetEnumerator();
while (ie.MoveNext())
{
Console.WriteLine((ie.Current as Person).Name);
}
//普通数组遍历
string[] str = new string[3] { "张辽", "张合", "张飞" };
IEnumerator strie = str.GetEnumerator();
while (strie.MoveNext())
{
Console.WriteLine(strie.Current as string);
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。