标题说我应该何时使用List
,何时应该使用ArrayList
?
由于
答案 0 :(得分:87)
使用ArrayList
的主要时间是在.NET 1.1中
除此之外,List<T>
一路(对于您当地的T
)...
对于那些您不了解类型(并且不能使用泛型)的(罕见)情况,即使List<object>
比ArrayList
(IMO)更有帮助。
答案 1 :(得分:12)
你应该总是使用List<TypeOfChoice>
(在.NET 2.0中引入泛型),因为它是TypeSafe并且比ArrayList
更快(没有必要的装箱/拆箱)。
只有我能想到ArrayList可以派上用场的情况是你需要与旧东西(.NET 1.1)接口,或者你需要一个不同类型的对象数组并将所有东西作为对象加载 - 但你可以用List<Object>
做后者通常会更好。
答案 2 :(得分:5)
由于List是一个泛型类,我倾向于总是使用List。
ArrayList是一个.NET 1.x类(虽然仍然可用且有效),但它不是'typed'/ generic,所以你需要将'object'中的项目转换回所需的类型;而使用List时,您不必这样做。
答案 3 :(得分:4)
尽可能使用List。当高性能List存在时,我看不到对ArrayList的任何用处。
答案 4 :(得分:3)
ArrayList是一种较旧的.NET数据结构。如果您使用的是.NET 2.0或更高版本,则在阵列需要保存相同类型的项目时始终使用List。使用List over ArrayList可以提高性能和可用性。
答案 5 :(得分:0)
正如其他人所说。您应该使用List泛型,几乎总是在您知道类型(C#是强类型语言)时,以及当您执行多态/ inhertance类或其他类似的事情时使用其他方法。
答案 6 :(得分:0)
如果您不想使用Linq查询,那么您不需要使用List。如果你想使用那么你必须更喜欢List。
答案 7 :(得分:0)
Generics是在.Net 2.0中引入的。如果您使用的是早期版本的.Net,那么您可以使用数组列表,否则我们可以使用通用列表本身。数组列表是不推荐使用的,不会提供更好的类型安全性,还会产生装箱和拆箱问题。但通用列表不会出现。