常用集合List有一个属性叫做Capacity属性。这个属性在官方的解释为:获取或设置该内部数据结构在不调整大小的情况下能够容纳的元素总数。
List是自动扩容的集合,在底层是使用Array作为存储结构的。List的默认存储数量是4。
在初学者学习的过程中,往往都是直接new List();使用。
来看这一段代码,_items就是我们存储数据的Array,在new List();的时候,默认是_items = new T[0],所以,在这段代码中。我们可以得出一个数值,就是我们需要的存储数据的Array的长度。
当我们现有的存储数据的Array的长度不够的时候,就去new T[value]。
假设,我们在一段代码中需要添加70条数据。如果我们直接new List();,那么造成的后果就是new了六次数组,多出了58个对象的内存占用量。
使用Capacity可以减少new的数组数量,使用恰当的话也可以减少多余的内存占用量。
在想使用List,同时又想控制内存占用量的时候,我们可以使用List的另一个构造函数 new List(int Capacity); 。