在程序编写过程中List的使用频率是相当之高,高过了数组,和Dictionary并起成为dotNet中的两大容器,但也只是会用而已,并不清楚具体的原理,早期我认为List内部是由链表实现的,但实际上并不是那样,本次查看了源码,对常用的基础容易有一定的了解。因ArrayList和List基本相同,所以先对ArrayList剖析,再来对比与List的不同。 数组在声明时就需要确认长度以便申请内存,在内存中是连续并且长度是固定的,索引速度上肯定是最快的,赋值与修改也非常简单,但因长度固定,插入和删除是个比较麻烦的事情,为…