这个方法用于将ArrayList固定到实际元素的大小,当动态数组元素确定不在添加的时候,可以调用这个方法来释放空余的内存。
(6)ToArray方法
这个方法把ArrayList的元素Copy到一个新的数组中。
3、ArrayList与数组转换
例1:
?
- ArrayList List = new ArrayList(); List.Add(1);
- List.Add(2); List.Add(3);
- //在做NHibernate时,返回IList得数组(多维的),可以用下面的方式实现 // string[] str=(string[])((ArrayList)ilist[0]).ToArray(Typeof(string));
- Int32[] values = (Int32[])List.ToArray(typeof(Int32)); //行不通
例2:
?
- ArrayList List = new ArrayList(); List.Add(1);
- List.Add(2); List.Add(3);
- Int32[] values = new Int32[List.Count]; List.CopyTo(values);
上面介绍了两种从ArrayList转换到数组的方法
例3:
?
- ArrayList List = new ArrayList(); List.Add( “string” );
- List.Add( 1 ); //往数组中添加不同类型的元素
- object[] values = List.ToArray(typeof(object)); //正确 string[] values = (string[])List.ToArray(typeof(string)); //错误
和数组不一样,因为可以转换为Object数组,所以往ArrayList里面添加不同类型的元素是不会出错的,但是当调用ArrayList方法的时候,要么传递所有元素都可以正确转型的类型或者Object类型,否则将会抛出无法转型的异常。
4、ArrayList最佳使用建议
这一节我们来讨论ArrayList与数组的差别,以及ArrayList的效率问题
(1)ArrayList是Array的复杂版本










