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;
}
}