您的位置:首页 > 编程语言 > C#

C# 泛型自定义集合

2017-10-29 12:22 246 查看
一.原型

public  class 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[3]);
//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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  泛型 class c#