使用泛型和索引器来实现一个我们自己的集合类MyList
创建一个类MyList.cs继承接口IComparable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _005_List的创建和使用
{
//使用泛型和索引器来实现一个我们自己的集合类MyList
class MyList<T> where T : IComparable//继承接口(加一个约束)
{
private T[] array;
private int count = 0; //表示当前的元素的个数
//构造方法new MyList<T>(size)
public MyList(int size)
{
if (size >= 0)
{
array = new T[size];
}
}
public MyList()
{
array = new T[0];
}
//容量其实就是数组长度
public int Capacity
{
get { return array.Length; }
}
//元素个数
public int Count
{
get { return count; }
}
//添加元素
public void Add(T item)
{
if (Count == Capacity) //判断元素个数跟列表容量大小是否一样大,如果一样大,说明数组容量不用,需要创建新的数组
{
if (Capacity == 0) //当数组长度为0的时候,创建一个长度为4的数组
{
array = new T[4];
}
else
{
var newArray = new T[Capacity * 2]; //当长度不为0的时候,我们创建一个长度为原来2倍的数组
Array.Copy(array, newArray, Count); /