泛型主要有以下几个优点:
1.性能高:定义数据类型,不需要类型转换,避免拆装箱带来的性能损失;
2.类型安全:定义允许使用的数据类型,在编译时检查类型错误,及早发现错误。
TestT.cs:

using System;
using System.Collections;
using System.Collections.Generic;
namespace Magci.Test.Collections
{
public class TestT
{
public static void Main()
{
ArrayList list1 = new ArrayList();
//需要装箱
list1.Add(1);
list1.Add(2);
list1.Add(3);
//需要拆箱
int i = (int)list1[0];
foreach (int item in list1)
{
//需要拆箱
Console.WriteLine(item.ToString());
}
//使用泛型
List<int> list2 = new List<int>();
//不需要装箱
list2.Add(1);
list2.Add(2);
list2.Add(3);
//不需要拆箱
int j = list2[0];
foreach (int item in list2)
{
//不需要拆箱
Console.WriteLine(item.ToString());
}
//添加字符串,并使用int类型迭代时会发生异常
list1.Add("Magci");
foreach (int item in list1)
{
Console.WriteLine(item.ToString());
}
//泛型是类型安全的,只能添加定义的类型,否则编译时会报错,使错误尽早发现
list2.Add("Magci");
foreach (int item in list2)
{
Console.WriteLine(item.ToString());
}
}
}
}