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;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值