泛型自动扩容的原理

当往泛型集合中添加元素时,会用集合的真实个数和集合的真实容量比较

当添加第一个元素,size初始值等于数组长度的初始值

然后会调用一个EnsureCapacity()的方法并把size+1作为参数传入过去

当数组的长度小于size的最小长度时

然后把新的长度给他赋值过去

结论:集合底层是通过两个数组相互copy实现的。
扩容的本质就是将新数组长度扩容成旧数组长度的2倍,其实上就是调度Array.Copy(oldArray,0,destArray,0,length)。

原文地址:https://www.cnblogs.com/liuzhiw/p/7016883.html