C# 简单的数组实现

C#实现简单的数组

最近学习了泛型,突然奇想,好像数组的实现也可以用到,就简单的写了一下。

public class MyArray<T>
    {
        private T[] myArray;         //数组体
        private int _size;           //长度
        public int Count { get { return _size; } } //长度计数

        public T this[int index]                //索引器
        {
            get
            {
                return myArray[index];
            }
            set
            {
                myArray[index] = value;
            }
        }

        public MyArray()
        {
            _size = 0;
            myArray = new T[_size];
        }

        //向数组添加新元素
        public void Add(T data)
        {
            if (data == null)
            {
                return;
            }
            T[] array = new T[_size + 1];       //申请一块新的内存
            for (int i = 0; i < myArray.Length; i++)
            {
                array[i] = myArray[i];
            }
            array[_size] = data;
            myArray = null;                     //清空数组
            myArray = array;                    //从新赋值
            _size += 1;
            array = null;
        }

        //删除数据
        public void RemoveAt(int index)
        {
            if (index < 0 && index > _size)
            {
                return;
            }

            for (int i = index; i < _size - 1; i++)
            {
                myArray[i] = myArray[i + 1];                //从index后面的数据往前移
            }
            myArray[_size - 1] = default(T);
            _size--;
        }
        public void Remove(T n)
        {
            for (int i = 0; i < myArray.Length; i++)
            {
                if (myArray[i].Equals(n))
                {
                    RemoveAt(i);
                }
            }
        }

        public void RemoveAll()
        {
            _size = 0;
            myArray = null;
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章