希望MSDN 上所提出的问题能够引起你的重视。
考虑以下问题:
-
您是否需要一个序列列表,其中的元素通常在检索其值后被放弃?
-
如果需要,那么在需要先进先出 (FIFO) 行为时请考虑使用 Queue 类或 Queue< T> 泛型类。在需要后进先出 (LIFO) 行为时请考虑使用 Stack 类或 Stack< T> 泛类。
-
如果不需要,请考虑使用其他集合。
-
-
是否需要以某种顺序访问元素,例如 FIFO、LIFO 或随机访问?
-
是否需要通过索引访问每一元素?
-
ArrayList 和 StringCollection 类以及 List < T> 泛型类通过元素的从零开始的索引提供对元素的访问。
-
Hashtable 、SortedList 、ListDictionary 和 StringDictionary 类以及 Dictionary< TKey, TValue> 和 SortedDictionary< TKey, TValue> 泛型类通过元素的键提供对元素的访问。
-
NameObjectCollectionBase 和 NameValueCollection 类以及 KeyedCollection < TKey, TValue> 和 SortedList < TKey, TValue> 泛型类通过其元素的从零开始的索引或者通过其元素的键提供对元素的访问。
-
-
每一元素将包含一个值、一个键和一个值的组合还是一个键和多个值的组合?
-
是否需要用与输入元素方式不同的方式对元素排序?
-
是否需要信息的快速搜索和检索?
-
是否需要只接受字符串的集合?
-
StringCollection (基于 IList )和 StringDictionary (基于 IDictionary )都位于 System.Collections.Specialized 命名空间中。
-
此外,通过为泛型类型参数指定 String 类,可以使用 System.Collections.Generic 命名空间中的任何泛型集合类作为强类型字符串集合。
-