List<T> T为占位符,表示List<T>集合所有内容为T类型,为的是减少类型转换。
如List<string> listStr = new List<string>(),集合listStr中所有元素为string,所以不用转换,直接用listStr[0]表示字符串。
而ArrayList al = new ArrayList(),集合al里面的元素全部为object,要通过装箱object o=a;拆箱(string)(o)才能使用,所以效率较差。
List可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法
在决定使用 List 还是使用 ArrayList 类(两者具有类似的功能)时,记住 List 类在大多数情况下执行得更好并且是类型安全的。如果对 List 类的类型 T 使用引用类型,则两个类的行为是完全相同的。但是,如果对类型 T 使用值类型,则需要考虑实现和装箱问题。
如果对类型 T 使用值类型,则编译器将特别针对该值类型生成 List 类的实现。这意味着不必对 List 对象的列表元素进行装箱就可以使用该元素
元素之后,不对列表元素装箱所节省的内存将大于生成该类实现所使用的内存。