ArrayList
,我在传统的Compact Framework代码中使用,在新的()框架中似乎不可用。. NET 4.5.1)代码。
我在其中存储自定义类的实例。
什么是好的替代品- List<Object>
,还是有更合适的东西?
正如@HighCore在他的评论中提到的,你应该使用List的通用形式,List<T>
。如果你定义了几个需要包含在List中的类,它们可能有共同的属性和方法。在这种情况下,您可以为类组创建一个abstract
类。
List<Object>
是一个可能的替代品,但不是一个好的。
是的,List<object>
是一个很好的替代 ArrayList
。
如果你想有一个列表类型,可以存储任何,你可以使用ArrayList
或List<object>
作为集合类型。它将具有相同的性能和行为特征。
问题是:你为什么要用ArrayList
开始?如果您来自于。net泛型版本之前的版本,那么您可能别无选择。你要么有强类型数组(大小恒定),要么有ArrayList
,它在大小上是动态的,但在类型上过于"通用"。它可以存储任何东西
现在,有了新的。net和c#版本,是时候让这一切都过去了。
(关于"。net和c#版本"的评论:显然这里的"新"并不像2014-new那样新,但与使用ArrayList
相比,OP从泛型中学到的任何教科书或源代码都是"新"的。)
你希望你的集合是强类型的。它使您的生活更轻松,因为您知道哪些字段/属性/成员可用于集合项等。
因此,您需要做的是找出元素的基类型是什么,并将集合设置为List<BaseType>
或类似的类型,这将使您的工作变得更加轻松。
如果你要存储一堆整数,使用List<int>
。如果你要存储一堆字符串,使用List<string>
。如果您要存储一堆SomeCustomObject
类型的对象,请使用List<SomeCustomObject
。