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;
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章