C#中Length和Count的区别(个人观点)

  这篇文章将会很短。。。短到比你的JJ还短,当然开玩笑了。网上有说过Length和count的区别,都是很含糊的,我没有发现有 文章说得比较透彻的,所以,虽然这篇文章很短,我还是希望能留在首页,听听大家对这个话题的看法,如果不信的话,你还真搜不到类似的文章,反正我是没搜索到。

  也许有些观点是错的,或者不正确的,还请指出;我的观点是:

  • Length:用于计算连续内存区域的一些“对象”的长度,而使用Count()计算非连续内存块的对象集合的“个数”;
  • Length是这个集合对象的一个特有的属性,它 继承自System.Object;Count()并不是一个属性,而是一个方法,每一次迭代器指针指向这个对象的后继(MoveNext()方法),当然你也可以理解为一个单链表,所以这就是迭代器为什么不能有下标,因为它根本没法跳跃式的找地址,那么它的大小是未知的。
  • Length的大小底层是由这个对象集的数据类型和初始化时候定义的大小确定的;
  • 有些人认为先有迭代器,然后才有的长度,长度是建立在迭代器的基础上的;这是错误的,那你可能会反驳:.NET中的基础数据类型,为什么可以用foreach,那你好好在int上面按一下F12,你会发现,其实:它在内部是Int32这个对象。也就是说,.NET中不存在所谓的基础数据类型;
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值