c# 集合的长度为什么是可变的
摘要: 写在前面:此随笔仅仅是作为个人学习总结,有不对的地方,请各位前辈指正o(∩_∩)o........
一: 引入
在学习集合之前我们都学习过数组.可以知道数组的长度在声明的时候就已经被固定了,不可以增加或者修改.这个时候我们想要有数组的效果,又可以随意的改变长度,那怎么办呢?此时我们的集合就出现啦.
在一个集合中我们可以通过add(),addrange()方法在集合末尾添加元素.可以通过remove(),removeat()方法移除元素.如果此时我们获取这个集合的count属性值,就会发现这个值在不断改变.
二: 为什么
首先我们来了解一下集合里面的两个属性:
count: 表示当前这个集合内元素的个数 ( gets the number of elements actually contained in the system.collections.arraylist.)
capacity: 表示当前这个集合可以容纳的元素个数 (gets or sets the number of elements that the system.collections.arraylist can contain.)
怎么说呢?
首先我们声明一个集合:
arraylist list = new arraylist(); console.writeline(list.count); console.writeline(list.capacity);
结果为: 0 , 0
给集合添加一个值:
arraylist list = new arraylist(); list.add("abc"); console.writeline(list.count); console.writeline(list.capacity);
结果为: 1 , 4
给集合添加四个值:
(代码略)
结果为: 4 , 4
给集合添加五个值:
(代码略)
结果为: 5 , 8
给集合添加九个值:
结果为: 9 , 16
移除一个值:
结果为: 8 , 8
由此我们可以看到,当我们只声明集合没有赋值的时候,没有可以容纳的个数.但是一旦我们往集合里添加数据,就会存在4个可以容纳的空间,超过4个就会翻倍的去申请.
当我们移除元素的时候,集合可以容纳的数目也会减少
上一篇: 美女在哪
下一篇: vue中通过数据绑定为元素设置样式
推荐阅读
-
C#中判断一个集合是否是另一个集合的子集的简单方法
-
C#中的不可变数据类型介绍(不可变对象、不可变集合)
-
JAVA String类为什么是Final不可变的
-
JAVA String类为什么是Final不可变的
-
为什么 String 是不可变的?
-
灵魂拷问:为什么 Java 字符串是不可变的?
-
Http响应 为什么没有Http头,直接是html内容,怎么用C#处理这样的情况_html/css_WEB-ITnose
-
Http响应 为什么没有Http头,直接是html内容,怎么用C#处理这样的情况_html/css_WEB-ITnose
-
C#中判断一个集合是否是另一个集合的子集的简单方法
-
zand framwork pdo 预处理 参数绑定长度不同 获取不到值,但库里是有值的,为什么?