谢谢大虾们了~~,小弟是初学者。

解决方案 »

  1.   

    就是说自己写一个类似于ArrayList的类,然后实现它里面Add方法。
      

  2.   

    从ArrayList继承一个新的类,然后添加你的Add方法就可以了,比如:
    class myList : System.Collections.ArrayList
    {
    public void Add(int value, string text)


    }
    }
      

  3.   

    谢谢楼上的。我是说如果不继承的情况下,自己编写一个Add方法该怎么写啊。
      

  4.   

    Add方法肯定是要加到一个类里的,如果不是继承一个新的ArrayList类,那么也一定要在你的类里,比如窗体类里添加一个Add方法,然后调用ArrayList.Add默认方法了.
      

  5.   

    比如这样:
    public partial class Form1 : Form
    {
    private ArrayList list;
    public Form1()
    {
    InitializeComponent();
    }
    public void Add(string text)
    {
    this.list.Add(text);
    }
    }
      

  6.   

    我的意思是自己写一个类似与ArrayList里的Add方法,方法里面能够实现和ArrayList里的Add方法一样的功能,比如我用我自己编写的这个类创建一个实例然后调用我这个方法,和我用ArrayList类创建一个实例调用Add方法是一样的效果。
      

  7.   

    反编译ArrayList.Add方法如下public virtual int Add(object value)
    {
          if (this._size == this._items.Length)
          {
                this.EnsureCapacity(this._size + 1);
          }
          this._items[this._size] = value;
          this._version++;
          return this._size++;
    }另外说明一下ArrayList内部用object数组来存储
    如果用来存储值类型,需要多次装箱、拆箱,性能会非常低
      

  8.   

    谢谢楼上的。有没有简单点的方法把ADD方法写出来。
      

  9.   

    自定义一个item类.
    里面含size,value,一个object数组.定义一个更长的数组
    new object[size+1]
    然后把原来的clone进去.再把最后一个值加入.这样就实现了add操作.
      

  10.   

    for example: class MyList
        {
            //保存列表元素
            private object[] elements;
            //列表长度
            private int count;        public int Count
            {
                get
                {
                    return this.count;
                }
            }
            public MyList()
            {
                elements = new object[0];
                count = 0;
            }        public object this[int index]
            {
                get
                {
                    if (index < 0 || index >= count)
                    {
                        throw new IndexOutOfRangeException();
                    }
                    return elements[index];
                }
                set
                {
                    if (index < 0 || index >= count)
                    {
                        throw new IndexOutOfRangeException();
                    }
                    this.elements[index] = value;
                }
            }        //实现Add方法
            public int Add(object obj)
            {
                count ++;
                object[] objs = new object[count];
                for (int i = 0; i < elements.Length; i++)
                {
                    objs[i] = elements[i];
                }
                objs[count - 1] = obj;
                elements = objs;
                return count;
            }
        }测试:
    MyList list = new MyList();
                list.Add("aaa");
                list.Add("bbb");
                list.Add("ccc");
                for (int i = 0; i < list.Count; i++)
                {
                    Console.WriteLine(list[i].ToString());
                }
                //没试更改
                list[1] = "ddd";
                for (int i = 0; i < list.Count; i++)
                {
                    Console.WriteLine(list[i].ToString());
                }输出:
    aaa
    bbb
    ccc
    aaa
    ddd
    ccc