我应该使用ArrayList还是IList?

7
我正在使用.NET框架1.1,希望有人能帮助我实现一个动态对象数组。下面是我想要使用的对象的简化示例。
Class CarObj
{
   public string CarName;
   public string CarYear;
}

我应该使用ArrayList还是您认为创建一个实现IList接口的CarList类会更好?其中一个方案是否有性能优助益?


3
当我们即将迎来4.0时,为什么公司会决定继续使用1.1平台? - Chris Marisic
3个回答

4
继承 CollectionBase 代替; 它包装了 IList 并允许您提供自己实现的所需类型方法。这就是它的设计目的 :)

1

如果您正在使用1.1版本并需要动态数组样式的集合,则ArrayList是让您前进的最佳选择。

虽然我讨厌使用ArrayList时出现的所有强制转换,但我当然不会因为编写具有强烈实现成员的自定义集合而责怪人们。但是,如果您选择这条路线,我建议使用自定义生成器而不是繁琐的手工编码。可以通过谷歌快速找到几个可用的生成器。

例如,此链接实际上将在网站上为您生成代码,并且可以简单地复制并粘贴到您的项目中。


0
实现自己的集合类(因为你被困在1.1中)的主要好处是类型安全;当你确定你的集合只能包含CarObj实例时,就不需要进行类型转换或担心转换错误。在内部,这个集合类可以使用ArrayList来存储对象。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接