[行为型设计模式:游标模式]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    public interface IEnumerable
    {
        IEnumerator GetEnumerator();
    }
    public interface IEnumerator
    {
        int Current { get; }//原代码是OBJECT类型
        bool MoveNext();
        void Reset();
    }

    public class MyCollection : IEnumerable
    {
        int[] items;
        public MyCollection()
        {
            items = new int[5] { 3, 5, 5, 8, 10 };
        }
        public IEnumerator GetEnumerator()
        {
            return new MyEnumerator(this);
        }
        public class MyEnumerator : IEnumerator
        {
            int nindex;
            MyCollection collection;
            public MyEnumerator(MyCollection coll)
            {
                collection = coll;
                nindex = -1;
            }
            public bool MoveNext()
            {
                nindex++;
                return (nindex < collection.items.GetLength(0));
            }
            public int Current
            {
                get
                {
                    return (collection.items[nindex]);
                }
            }
            public void Reset()
            {
                nindex = 0;
            }
        }
    }
    public class APPFORITERATOR
    {
        public string ITERATOR()
        {
            MyCollection col = new MyCollection();
            string strReturn = string.Empty;
            //foreach (int i in col)
            //{
            //    strReturn = strReturn + i.ToString() + ",";
            //}
            ///下面的WHILE循环等价与上面的屏蔽代码
            IEnumerator ico = col.GetEnumerator();
            while (ico.MoveNext())
            {
                int i = (int)ico.Current;
                strReturn = strReturn + i.ToString() + ",";
            }
            return strReturn;
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员敏敏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值