2012.6.6泛型,自定义泛型,foreach 生级版

关于想使用foreach

必须现实GetEnumerator()方法

        static void Main(string[] args)
        {

            M<int> m = new M<int>();
            for (int i = 0; i < 10; i++)
            {
                m.Add(i);
            }
            foreach (var item in m)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }


 

 


 

 

    class M<T> : IEnumerable     {         int _size = 0;         int max = 0;         T[] x = new T[0];

        public T this[int index]         {             get             {                 return x[index];             }             set             {                 x[index] = value;             }         }         public void Add(T value)         {

            if (_size == x.Length)             {               max= x.Length == 0 ? 4 : (x.Length * 2);               T[] tt = new T[_size];

              x.CopyTo(tt, 0);               x = new T[max];               tt.CopyTo(x, 0);                           }             x[_size++] = value;

        }                 public int Count         {             get             {                 return _size;             }         }         public IEnumerator GetEnumerator()         {             return new MM<T>(x,_size);         }     }     class MM<T> : IEnumerator     {         int _index = -1;         T[] xx;         int _size;         public MM(T[] x,int size)         {             xx = x;             _size = size;         }         public object Current         {             get             {                 return xx[_index];             }         }

        public bool MoveNext()         {             if (_index >= _size - 1)             {                 return false;             }             else             {                 _index++;                 return true;             }         }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值