代码清单3-10 一个完整的泛型枚举——从0枚举到9

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            CountingEnumerable counter = new CountingEnumerable();
            foreach (int x in counter)
            {
                Console.WriteLine(x);
            }
            Console.ReadKey();
        }
    }

    class CountingEnumerable : IEnumerable<int>
    {

        public IEnumerator<int> GetEnumerator()
        {
            return new CountingEnumerator();
        }

        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }
    }

    class CountingEnumerator : IEnumerator<int>
    {
        int current = -1;
        public int Current
        {
            get { return current; }
        }

        
        object System.Collections.IEnumerator.Current
        {
            get { return Current; }
        }

        public bool MoveNext()
        {
            current++;
            return current < 10;
        }

        public void Reset()
        {
            current = -1;
        }

        public void Dispose()
        {
        }
    }
}

 

posted on 2017-06-06 18:35  liuslayer  阅读(215)  评论(0编辑  收藏  举报

导航