你弄混了吧 IEnumerator 跟IEnumerable 是不一样的哦 你上面的 current 那是因为你里面的GenEnumerator 集合没有项。然后你调用了g.GetEnumerator() 这个方法里面是迭代器,又返回值所以有值

解决方案 »

  1.   


     IEnumerator ie=list.GetEnumerator();
                while (ie.MoveNext())
                {
                    Console.WriteLine(ie.Current);
                }
    这样才有意义 因为你每次都是
     g.GetEnumerator().MoveNext();
    Console.WriteLine(g.GetEnumerator().Current);
    这样会造成每次重新调g.GetEnumerator()这个方法 造成永远没有MoveNext
    你要先定义一个变量
    IEnumerator ie=list.GetEnumerator();
    然后ie.MoveNext();ie.Current就有值了。
      

  2.   


    明白了,也就是说g.GetEnumerator()返回的都是一个新的IEnumerator?即便我MoveNext了。是吗?
      

  3.   


    明白了,也就是说g.GetEnumerator()返回的都是一个新的IEnumerator?即便我MoveNext了。是吗?
    是的。
      

  4.   


    明白了,也就是说g.GetEnumerator()返回的都是一个新的IEnumerator?即便我MoveNext了。是吗?
    是的。
    谢谢了。有点像对string的操作。
      

  5.   

    废话过年了 没撒送你 就送你几个bug把 不够还可再送
      

  6.   

    废话过年了 没撒送你 就送你几个bug把 不够还可再送参天啊。