ArrayList
似乎在newfangled(.NET 4.5.1)代码中不可用。
我在其中存储自定义类的实例。
什么是它的好替代品 - List<Object>
,还是有更合适的东西?
答案 0 :(得分:4)
正如@HighCore在评论中提到的那样,你应该使用List的通用形式List<T>
。如果您定义了几个需要包含在该List中的类,则它们可能具有公共属性,方法。在这种情况下,您可以为类组创建abstract
类。
List<Object>
是一个可能的替代品,但不是一个好的。
答案 1 :(得分:2)
是的,List<object>
是ArrayList
的优秀替换。
如果您想要一个可以存储任何内容的列表类型,您可以使用ArrayList
或List<object>
作为集合类型。它将具有相同的性能和行为特征。
问题是:您为什么要使用ArrayList
开头?如果你是来自.NET的pre-generics版本,那么你可能别无选择。您要么具有强类型数组(大小不变),要么ArrayList
具有动态大小但在类型中过于“通用”。它可以存储任何东西。
现在,有了新的.NET和C#版本,现在是时候放手了。
(关于“net .NET和C#版本”的评论:显然“新”这里并不像2014年新版那样新,但与OP从仿制药中学到的任何教科书或源代码相比都是“新的”与使用ArrayList
相比。)
您希望对集合进行强类型输入。它让您的生活更轻松,因为您知道集合项目中可用的字段/属性/成员等。
因此,您要做的是弄清楚元素的 base 类型是什么,并使集合成为List<BaseType>
或类似,这将使您的生活成为现实整整很容易。
如果要存储一堆整数,请使用List<int>
。如果您要存储一堆字符串,请使用List<string>
。如果您要存储一堆SomeCustomObject
类型的对象,请使用List<SomeCustomObject
。