What is difference b/w Generic List and Arraylist, Generic List Vs HashTable, Generic List Vs No Generic?
两者有什么区别
基本上,通用集合在编译时是类型安全的:您指定集合应该包含哪种类型的对象,类型系统将确保您只将这种类型的对象放入其中。此外,当你取出物品时,你不需要把它扔出去。
例如,假设我们需要一组字符串。我们可以这样使用
1 2 3 4 5 | ArrayList list = new ArrayList(); list.Add("hello"); list.Add(new Button()); // Oops! That's not meant to be there... ... string firstEntry = (string) list[0]; |
但是,
1 2 3 4 5 6 7 | List<string> list = new List<string>(); list.Add("hello"); list.Add(new Button()); // This won't compile ... // No need for a cast; guaranteed to be type-safe... although it // will still throw an exception if the list is empty string firstEntry = list[0]; |
请注意,泛型集合只是泛型更一般特性的一个示例(尽管是最常用的一个),它允许您根据所处理的数据类型参数化类型或方法。
.NET 1.0中包含arraylist和hashtable类型。它们或多或少相当于一个列表和一本字典。
它们的存在都是为了在2.0中引入泛型之前保持与.NET 1.0或1.1中编写的代码的兼容性,如果您以.NET 2.0或更高版本为目标,通常应该避免使用。