设计模式之迭代器模式

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

运行结果

143122_GM5u_2004005.png

这里 的company就相当于定制化的List 一样一样的。

转载于:https://my.oschina.net/love404/blog/418583

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值