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++ 标准库 - 我应该啥时候使用它,啥时候不应该使用它?

我啥时候应该使用“隐藏文本框”,啥时候应该使用(html 5)“数据属性”?

我啥时候应该在 C 中使用 malloc,啥时候不应该?

我啥时候应该在 C 中使用 malloc,啥时候不应该?

typeof 和 instanceof 有啥区别,啥时候应该使用另一个?