这个标题已经概括了问题。既然我们有了 List<T>
,为什么还要使用 ArrayList
呢?我唯一能想到的原因是如果你被迫使用早于 List<T>
实现之前版本的 .NET?
正如你所说,如果由于某种原因你被困在.Net 1.1中,那么你别无选择。
你的问题似乎表明有选择的余地。那么就没有使用ArrayList
的理由了。任何ArrayList
可以做到的事情,List<T>
也能做到,甚至更好。
简短回答,不行。ArrayList是在.NET不支持泛型的时代诞生的。List是处理列表更灵活(泛型)的方式。事实上,我认为Silverlight甚至根本不支持ArrayList。
ArrayList主要是为了向后兼容而存在。在项目中,如果有截止日期,您可能会有时间将所有内容从ArrayList转换为通用列表。
另一个原因是您可能正在使用一个编写在.NET 1.1中的库。因此,您可能被迫在代码中使用ArrayList,并且很可能将其转换为通用列表以便于编码。
但是,这两者之间存在一些差异,您可能需要阅读以下内容: .NET: ArrayList vs List
自从 .Net 2.0 以来,我唯一使用 ArrayList 的时候是为了与 vb.net 中内置的 My.Settings 功能一起使用,而我后来发现我可能本可以在那里使用泛型列表。
List<object>
。 - Will Vousden