c#啥时候应该使用List,啥时候应该使用arraylist?
Posted
技术标签:
【中文标题】c#啥时候应该使用List,啥时候应该使用arraylist?【英文标题】:c# When should I use List and when should I use arraylist?c#什么时候应该使用List,什么时候应该使用arraylist? 【发布时间】:2010-10-18 01:10:49 【问题描述】:正如标题所说,什么时候应该使用List
,什么时候应该使用ArrayList
?
谢谢
【问题讨论】:
【参考方案1】:使用ArrayList
的主要时间是在.NET 1.1
除此之外,一路List<T>
(为您当地的T
)...
对于那些(罕见的)您不知道预先类型(并且不能使用泛型)的情况,即使List<object>
也比ArrayList
(IMO) 更有帮助。
【讨论】:
参见JohnIdol's answer,它用几句话解释了为什么。【参考方案2】:由于 List 是一个泛型类,我倾向于总是使用 List。
ArrayList 是一个 .NET 1.x 类(尽管仍然可用且有效),但它不是“类型化”/通用的,因此您需要将项目从“对象”转换回所需的类型;而使用 List 时,您不必这样做。
【讨论】:
【参考方案3】:您应该始终使用List<TypeOfChoice>
(在.NET 2.0 中引入泛型),因为它是类型安全的并且比ArrayList
更快(没有不必要的装箱/拆箱)。
我能想到 ArrayList 可以派上用场的唯一情况是,如果您需要与旧的东西(.NET 1.1)交互,或者您需要一个不同类型的对象数组并将所有内容加载为对象 - 但您可以后者使用List<Object>
通常更好。
【讨论】:
【参考方案4】:尽可能使用列表。当存在高性能 List 时,我看不到 ArrayList 的任何用途。
【讨论】:
【参考方案5】:正如其他人所说。您应该使用 List 泛型,几乎总是在您知道类型时使用(C# 是一种强类型语言),以及在您执行多态/继承类或其他类似的事情时使用其他方式。
【讨论】:
【参考方案6】:ArrayList 是一种较旧的 .NET 数据结构。如果您使用的是 .NET 2.0 或更高版本,则当数组需要保存相同类型的项目时,请始终使用 List。使用 List 而不是 ArrayList 可以提高性能和可用性。
【讨论】:
【参考方案7】:如果你不想使用 Linq 查询,那么你不需要使用 List。如果你想使用那么你必须更喜欢List。
【讨论】:
【参考方案8】:Generics 是在 .Net 2.0 中引入的。如果您使用的是早期版本的 .Net,那么您可以使用 Array List 否则我们可以使用 Generic List 本身。 Array List 已被弃用,不会提供更好的类型安全性,还会产生装箱和拆箱问题。但 Generic List 不会。
【讨论】:
以上是关于c#啥时候应该使用List,啥时候应该使用arraylist?的主要内容,如果未能解决你的问题,请参考以下文章
C++ 标准库 - 我应该啥时候使用它,啥时候不应该使用它?