public class chl:ienumerable
{
 public IEnumerator GetEnumerator()
        {
                  
          
        }public object add(object x)
       {
       } }chl x =new chl();
chl.add(12);
chl.add(3);
chl.add(6);如何在迭代器中添加项用来保存这三个数

解决方案 »

  1.   

    给你个例子看看吧
    http://hi.baidu.com/vcarcar/blog/item/6524c0193cd27978dbb4bd27.html
      

  2.   

    ArrayList
    HashTable
    应该都可以的吧
      

  3.   

    不用那么麻烦,如果你自己实现ienumerable()那你务必要实现迭代的所有方法Next()、、、
    太麻烦了如果你直接继承ArrayList、HashTable倒是很方便public class chl:ArrayList
    {
    }chl x =new chl();
    chl.add(12);
    chl.add(3);
    chl.add(6);
    NO PROBLOM
      

  4.   

    可以借用STL里面的vector等容器的设计思想,
    容器内部实现可以用数组或是链表来实现,其实如果不做成HashTable之类的容器,还是很简单的,
    需要注意的是,因为是动态的容器,需要在添加元素的时候检查容器的容量是否足够,不够的话需要动态增加容量
    别外,最好还要提供效率较高的排序和查找的算法
      

  5.   

    public class MyCollection: IEnumerable
    {
    public MyCollection()
    {
    _collection = new object[100];
    } public void Add(object item)
    {
    CheckCapaicty();
    _collection[_count] = item;
    _count++;
    } #region IEnumerable 成员 public IEnumerator GetEnumerator()
    {
    for(int i=0; i<_count; i++)
    {
    yield  return _collection[i];
    }
    } #endregion public int Count
    {
    get
    {
    return _count;
    }
    } public int Capacity
    {
    get
    {
    return _capacity;
    }
    } private void CheckCapaicty()
    {
    //如果空间不够,则增加。。
    }
    private object[] _collection; private int _count = 0; private int _capacity = 0;

    }
      

  6.   

    建议直接使用泛型来处理。System.Collections.Generic 命名空间 
    --
    如果要自己实现容器,强烈建议请从System.Collections.ObjectModel 命名空间下的类进行继承。
      

  7.   

    foreach遍历一个数组,用yield加到迭代器中