C#中数组,ArrayList和List三者的区别

 我来答
zenki1984
2017-10-06 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1357
采纳率:83%
帮助的人:377万
展开全部
数组和List很常用。。。ArrayList会严重损耗性能,除非无法避免,否则能不用就别用。。
三者之中,数组的性能是最好的,但数组必须在声明的时候确定长度。。。一旦声明之后,长度就无法改变。。而实际开发中总有一些情况,让我们必须改变长度。。。所以才有ArrayList和List。。
ArrayList就像JAVASCRIPT里的数组一样,不需要考虑变量类型,所有类型都可以无脑装进来。。。。其实就是无论什么类型,都在装入的时候,被自动转换成了Object类型。。由于object是一切类型的父类,所以ArrayList里面什么都能装。。看起来似乎挺省事,但其实缺点非常严重。。它会让C#静态语言的性能优势消失。。性能直接下降几十倍。。变得与JS等动态语言一样慢。。其实关键就是在于,每一次转换之间,都必须产生装箱和拆箱。。。这就是为什么JS,PYTHON,RUBY等语言,所开发出的程序执行效率都非常差的原因。。
List是泛型集合,这里涉及到泛型的概念,篇幅有限,无法说明,如果你学习了泛型,自然就会明白它的原理。。。总之List集合是个很棒的东西。。既不像ArrayList那样严重损失性能,又不像数组一样在定义时就限制了长度。。
一个最合理的原则。。。能用数组解决的问题,优先使用数组。。。数组无法满足的,就用List集合。。。不到万不得已,永远不要用ArrayList。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式