动态数组

1、命名空间

using System.Collections;

 

2、简介

ArrayList就是传说中的动态数组,它可以动态的增加和减少元素,另外它可以存储任意个数和任意类型的元素。

 

3、属性

Count属性是目前ArrayList包含的元素的数量,这个属性是只读的 Capacity属性是目前ArrayList能够包含的最大数量,可以手动的设置这个属性,但是当设置为小于Count值的时候会引发一个异常。

 

4、方法

Add(v):添加一个元素(参数v,任何类型)到当前列表的末尾 ;

AddRange方法用于添加一批元素到当前列表的末尾 ;

Remove方法用于删除一个元素,通过元素本身的引用来删除 ;

RemoveAt(i):方法用于删除一个元素,通过索引值(参数i)来删除 ;

RemoveRange用于删除一批元素,通过指定开始的索引和删除的数量来删除 ;

Insert用于添加一个元素到指定位置,列表后面的元素依次往后移动 ;

InsertRange用于从指定位置开始添加一批元素,列表后面的元素依次往后移动 ;

Clear():方法用于清除现有所有的元素 ;

Contains(v):方法用来查找某个对象(参数v)在不在列表之中 ;

ToArray(Type t):这个方法把ArrayList的元素Copy到一个新的数组中,参数为Type类型;

 

5、ArrayList与数组转换

----元素类型相同的转换 

a、ArrarList 转换为 string[] 

ArrayList list = new ArrayList();   

list.Add("aaa");   

list.Add("bbb"); 

string[] arrString = (string[])list.ToArray(typeof(string)); //转换成数组

b、string[] 转换为 ArrarList   

ArrayList list = new ArrayList(new string[] { "aaa", "bbb" });

c、ArrayList 转换为 string

ArrayList list = new ArrayList();   

list.Add("aaa");   

list.Add("bbb");   

string str= string.Join(",", (string[])list.ToArray(typeof( string)));

d、CopyTo() 

int[] list3 = new int[list.Count];      

list.CopyTo(list3)

----元素类型不同的转换

ArrayList arr = new ArrayList(){ "北京", 1};  //往数组中添加不同类型的元素

object[] arr2 = (object[])arr.ToArray(typeof(object)); //正确

string[] arr3 = (string[])arr.ToArray(typeof(string)); //有人说是错的,我测试没出问题,所以正确

 

6、实例            

ArrayList arr = new ArrayList();            

for (int i = 0; i < 7; i++)            

{                

  arr.Add(i);// 向数组里添加元素

 }            

arr.Insert(arr.Count, 11);// 向数组插入元素(arr.Count索引,11为值)            

arr.AddRange(new int[] { 12, 13 }); // 在ArrayList末尾添加元素

 

7、往一个数组里添加一个数组,即将ArrayList变为二维数组            

ArrayList list= new ArrayList();            

int[] arr = { 88, 99 };            

for (int i = 0; i < 7; i++)            

{  

  list.Add(new ArrayList(arr));                                         

}          

调用该数组的某个值: int value = (int)((ArrayList)list[1])[1];

posted @ 2017-11-16 21:08  冰冰影  阅读(166)  评论(0)    收藏  举报