c# 集合的长度为何是可变的

摘要: 写在前面:此随笔仅仅是做为我的学习总结,有不对的地方,请各位前辈指正O(∩_∩)O........ 数组

一: 引入学习

在学习集合以前咱们都学习过数组.能够知道数组的长度在声明的时候就已经被固定了,不能够增长或者修改.这个时候咱们想要有数组的效果,又能够随意的改变长度,那怎么办呢?此时咱们的集合就出现啦.spa

在一个集合中咱们能够经过Add(),AddRange()方法在集合末尾添加元素.能够经过Remove(),RemoveAt()方法移除元素.若是此时咱们获取这个集合的Count属性值,就会发现这个值在不断改变.code

二: 为何blog

首先咱们来了解一下集合里面的两个属性:ci

Count: 表示当前这个集合内元素的个数  ( Gets the number of elements actually contained in the System.Collections.ArrayList.)element

Capacity: 表示当前这个集合能够容纳的元素个数  (Gets or sets the number of elements that the System.Collections.ArrayList can contain.)it

怎么说呢?io

首先咱们声明一个集合:class

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个就会翻倍的去申请.

当咱们移除元素的时候,集合能够容纳的数目也会减小

相关文章
相关标签/搜索