首页 > 其他 > 详细

IEnumerable接口的实现

时间:2014-03-14 18:40:59      阅读:359      评论:0      收藏:0      [点我收藏+]

对象要实现可以迭代需IEnumerable接口并实现GetEnumerator方法。一下简单例子

bubuko.com,布布扣
    public class SPEnumerable<T> : IEnumerable
    {
        private T[] array;

        public SPEnumerable()
        {
            array = new T[0];
        }

        public void Add(T item)
        {
            Array.Resize<T>(ref array, array.Length + 1);
            array[array.Length - 1] = item;
        }

        #region IEnumerable 成员

        IEnumerator IEnumerable.GetEnumerator()
        {
            foreach (T item in array)
            {
                yield return item;
            }
        }

        #endregion
    }
bubuko.com,布布扣

 

当然也可以自己去实现IEnumerator接口

bubuko.com,布布扣
    public class SPEnumerable<T> : IEnumerable
    {
        private T[] array;

        public SPEnumerable()
        {
            array = new T[0];
        }

        public void Add(T item)
        {
            Array.Resize<T>(ref array, array.Length + 1);
            array[array.Length - 1] = item;
        }

        #region IEnumerable 成员

        IEnumerator IEnumerable.GetEnumerator()
        {
            return new SPEnumerator<T>(array);
        }

        #endregion
    }

    public class SPEnumerator<T> : IEnumerator
    {
        private int position = -1;
        private T[] array;

        public SPEnumerator(T[] array)
        {
            this.array = array;
        }

        #region IEnumerator 成员

        public object Current
        {
            get 
            { 
                return array[position];
            }
        }

        public bool MoveNext()
        {
            position++;
            return position < array.Length;
        }

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

        #endregion
    }
bubuko.com,布布扣

IEnumerable接口的实现,布布扣,bubuko.com

IEnumerable接口的实现

原文:http://www.cnblogs.com/xingbinggong/p/3598963.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!