using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace IteratorPattern
{
//员工类
class Worker
{
public string name;
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace IteratorPattern
{
//公司类 公司里的元素为员工
class Company : IEnumerable, IEnumerator
{
private int index;
private Worker[] workers;
public Company(int numofworker)
{
this.index = -1;
workers = new Worker[numofworker];
}
public Company(Worker[] pworkers)
{
this.index = -1;
workers = pworkers;
}
public IEnumerator GetEnumerator()
{
return (IEnumerator)this;
}
public object Current
{
get
{
return workers[index];
}
}
public bool MoveNext()
{
index++;
if(index >= workers.Length)
{index=-1; return false;}
else
return true;
}
public void Reset()
{
index = -1;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace IteratorPattern
{
class Program
{
static void Main(string[] args)
{
Worker workers = new Worker();
workers.name = "张三";
Worker workers1 = new Worker();
workers1.name = "李四";
Worker workers2 = new Worker();
workers2.name = "老王";
Worker workers3 = new Worker();
workers3.name = "凤凤";
Worker[] w = new Worker[4];
w[0] = workers;
w[1] = workers1;
w[2] = workers2;
w[3] = workers3;
Company c = new Company(w);
foreach (Worker item in c)
{
Console.WriteLine(item.name.ToString());
}
Console.ReadLine();
}
}
}
运行结果
这里 的company就相当于定制化的List 一样一样的。