C#.Net ArrayList的使用方法

2019-12-26 14:07:21王冬梅

这个方法用于将ArrayList固定到实际元素的大小,当动态数组元素确定不在添加的时候,可以调用这个方法来释放空余的内存。

(6)ToArray方法

这个方法把ArrayList的元素Copy到一个新的数组中。

3、ArrayList与数组转换

例1:
 

  1. ArrayList List = new ArrayList();   List.Add(1);  
  2. List.Add(2);   List.Add(3);  
  3. //在做NHibernate时,返回IList得数组(多维的),可以用下面的方式实现   // string[] str=(string[])((ArrayList)ilist[0]).ToArray(Typeof(string));  
  4. Int32[] values = (Int32[])List.ToArray(typeof(Int32)); //行不通  
?

例2:
 

  1. ArrayList List = new ArrayList();   List.Add(1);  
  2. List.Add(2);   List.Add(3);  
  3. Int32[] values = new Int32[List.Count];   List.CopyTo(values);  
?

上面介绍了两种从ArrayList转换到数组的方法

例3:
 

  1. ArrayList List = new ArrayList();   List.Add( “string” );  
  2. List.Add( 1 );   //往数组中添加不同类型的元素  
  3. object[] values = List.ToArray(typeof(object)); //正确   string[] values = (string[])List.ToArray(typeof(string)); //错误  
?

和数组不一样,因为可以转换为Object数组,所以往ArrayList里面添加不同类型的元素是不会出错的,但是当调用ArrayList方法的时候,要么传递所有元素都可以正确转型的类型或者Object类型,否则将会抛出无法转型的异常。

4、ArrayList最佳使用建议

这一节我们来讨论ArrayList与数组的差别,以及ArrayList的效率问题

(1)ArrayList是Array的复杂版本