2

少儿编程list教程-爱游戏全站app官网入口

在csharp(c#)中(不知java是否也一样),list有两个获取数组长度的方式,分别是list.count和list.count()。很多人有疑问,为什么会出现两个获取数组长度的方式?其实仔细看我们就知道,list.count是属性,list.co

在csharp(c#)中(不知java是否也一样),list有两个获取数组长度的方式,分别是list.count和list.count()。很多人有疑问,为什么会出现两个获取数组长度的方式?其实仔细看我们就知道,list.count是属性,list.count()是方法,它们的执行方式是不一样的!

list.count是集合在改变内容时赋值的,比如执行list.add()的时候,在count基础上加1,在执行list.remove()时,在count基础上减1,而count在源码中的值源自私有属性_size。

但list.count()就不一样了,采取的方式是直接循环集合内容,每获取到一个集合内容则将长度加1,最终返回数组的整个长度。

后者看起来显然是不效率的,但是为什么要这么做呢?原因其实很简单,那就是list.count是list的自有属性,而list.count()则源自enumerable。

几乎所有的集合类型都继承了ienumerable(包括icollection),但并不是所有集合类型都有类似list.add()或者list.remove()这样的方法。因此,list.count是list单独实现的!

比如说,有一些数组类型是可以先定义空间长度,再去定义数组内容的,此时如果使用count去获取它的长度,虽然可能能获取到,但是获取的只是数组的空间长度,所以意义并不大。因此,如果在csharp内,如果只定义了数组空间长度但是未给数组定义内容的话,是使用不了list.count这个属性的!

因此,从源码上来看,使用list.count在获取值的速度上不光优于list.count(),从某种角度说,它所代表的意义也是要大于list.count()的!

#程序员# #编程# #编程语言#

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2596919/
1
上一篇少儿编程游戏星星公主
下一篇 没有了

为您推荐

联系爱游戏全站app官网入口

联系爱游戏全站app官网入口

在线咨询:

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注爱游戏app官网登录入口

返回顶部
网站地图