C#中如何选择使用T[]或List<T>


当有一组数据需要存放,到底是使用T[]呢,还是选择List<T>呢?

 

先来看数组。

 

所有的数组类型都隐式地从System.Array这个抽象类派生,而System.Array又派生自System.Object。也就是说数组是引用类型。通过如下方式创建数组:

 

int[] arrInt = new int[10];

 

以上,在托管堆上分配了可以容纳10个未装箱int对象所需要的内存块(这个内存块除了容纳数组元素所占的内存,还包括数组元素对象的类型对象指针、同步块索引等额外成员),然后内存块地址被返回并保存到线程栈上的arrInt变量中。


而List<T>,实际上,在内部也维护着一个数组,只不过这个数组的容量可以动态增加。就像这里说的。

总结:如果数据的容量是动态变化的,需要操作,比如插入或删除元素,就使用List<T>;如果数据的容量是固定的,可以考虑使用T[]。

posted @ 2015-05-22 14:52  Darren Ji  阅读(1926)  评论(0编辑  收藏  举报

我的公众号:新语新世界,欢迎关注。