所有栏目

C# 自定义泛型集合

已输入 0 字
优质回答
  • 一.原型

    publicclass InList

    {

    int[] arr = new int[10];

    int index = 0;

    public void Add(int param)

    {

    if (index >= arr.Length)

    {

    int[] tmp = new int[arr.Length * 2];

    arr.CopyTo(tmp, 0);

    arr = tmp;

    }

    arr[index] = param;

    index++;

    }

    public int this[int index]

    {

    get

    {

    if (index >= arr.Length)

    {

    throw new Exception("索引越界");

    }

    return arr[index];

    }

    }

    }

    二.泛型自定义集合

    /// <summary>

    /// 自定义泛型类集合

    /// </summary>

    /// <typeparam name="T"></typeparam>

    public class MyList<T>

    {

    T[] arr = new T[10];

    int index = 0;

    public void Add(T param)

    {

    if (index >= arr.Length)

    {

    T[] tmp = new T[arr.Length * 2];

    arr.CopyTo(tmp, 0);

    arr = tmp;

    }

    arr[index] = param;

    index++;

    }

    public T this[int index]

    {

    get

    {

    if (index >= arr.Length)

    {

    throw new Exception("索引越界");

    }

    return arr[index];

    }

    }

    }

    调用

    class Program

    {

    static void Main(string[] args)

    {

    //InList ilist = new InList();

    //ilist.Add(1);

    //ilist.Add(3);

    //ilist.Add(4);

    //ilist.Add(7);

    //Console.WriteLine(ilist);

    //Console.ReadKey();

    MyList<int> ilist = new MyList<int>();

    ilist.Add(1);

    MyList<string> sList = new MyList<string>();

    sList.Add("1");

    //MyList1.MyList`1[System.String]

    Console.WriteLine(sList.ToString());

    Console.ReadKey();

    }

    }

    2023-10-24 12:28:11
最新问题 全部问题