泛型与非泛型集合类在概念和功能上各有不同,其中非泛型集合类在取出值时需要进行类型的转换操作,如果加入值类型会引起装箱和拆箱的操作,这会带来巨大的性能额外开销,如果掌握好泛型数组之后可以不再需要用非泛型的数组了,同时带来类型安全的好处并减少在值类型和引用类型之间的装箱和拆箱。
非泛型集合类 | 泛型集合类 | 描述 |
ArrayList | List<T> | 表示具有动态大小的对象数组 |
Hashtable | Dictionary<Tkey,Tvalue> | 由键值对组成的集合 |
SortedList | SortedList<Tkey,Tvalue> | 和字典相似但有排序功能的集合 |
Queue | Queue<T> | 表示标准的先进先出(FIFO)队列 |
Stack | Stack<T> | 后进先出(LIFO)队列,提供压入和弹出功能 |