什么是差异b / w通用列表和Arraylist,通用列表与HashTable,通用列表对没有通用?

时间:2010-08-20 11:20:24

标签: .net

之间有什么区别
  1. 通用列表和Arraylist
  2. 通用列表与HashTable
  3. Generic List Vs No Generic?

2 个答案:

答案 0 :(得分:8)

基本上,泛型集合在编译时是类型安全的:您指定集合应该包含哪种类型的对象,类型系统将确保您只将这种对象放入其中。此外,当你拿出它时,你不需要施放物品。

举个例子,假设我们想要一个字符串集合。我们可以像这样使用ArrayList

ArrayList list = new ArrayList();
list.Add("hello");
list.Add(new Button()); // Oops! That's not meant to be there...
...
string firstEntry = (string) list[0];

但是List<string>会阻止无效条目避免播放:

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];

请注意,泛型集合只是泛型的更一般特性的一个示例(尽管是最常用的集合),它允许您根据它处理的数据类型来参数化类型或方法。

答案 1 :(得分:1)

ArrayList和HashTable类型包含在.Net 1.0中。它们或多或少等同于List和Dictionary。

它们的存在是为了在2.0版本中引入泛型之前与.Net 1.0或1.1中编写的代码保持兼容,如果你的目标是.Net 2.0或更高版本,通常应该避免使用。