首页 > 代码库 > C#的ArrayList集合的使用

C#的ArrayList集合的使用

集合类是一种将各相同类型的对象集合起来的类,数组实质上也是集合类型中的一种。

集合主要是以线性结构存储结构

C#提供ArrayList类、Queue类、Stack类


1.ArrayList类简介:


ArrayList类可以动态地添加和删除元素。

ArrayList类相当于一种高级的动态数组,是Array类的升级版本,但它并不等同于数组。





2.与数组的比较:


(1)数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充

(2)ArrayList提供添加,删除,插入某一范围元素的方法,但在数组中只能一次获取或设置一个元素值。

(3)ArrayList提供将只读和固定大小包装返回到集合的方法,而数组不提供

(4)ArrayList只是一维形式,而数组可以是多维的





3.ArrayList提供3个构造器,所以可以有3种声明方法:


(1)默认的构造器,以默认的大小来初始化内部的数组

public ArrayList()

示例:ArrayList list = new ArrayList();

      for(int i=0;i<10;i++){list.Add(i)}//给ArrayList对象添加10个int类型元素

(2)用一个ICollection对象来构造,并将该集合的元素添加到ArrayList中

public ArrayList(ICollection)

示例:int[] arr = new int[]{1,2,3,4,5,6,7,8,9}

      ArrayList list = new ArrayList(arr)//将一位数组添加到ArrayList集合中

(3)用指定的大小初始化内部的数组

public ArrayList(int)

示例:ArrayList list = new ArrayList(10)

      for(int i=0;i<list.Count;i++){list.Add(i)}




4.ArrayList常用的属性:


Capacity          获取或设置ArrayList可包含的元素数

Count             获取ArrayList中实际包含的元素数

IsFixedSize       获取一个值,该值指示ArrayList是否具有固定大小

IsReadOnly        获取一个值,该值指示ArrayList是否为只读

IsSynchronized    获取一个值,该值指示是否听不对ArrayList的访问

Item              获取或设置指定索引处的元素

SyncRoot          获取课用于同步ArrayList访问的对象




5.添加ArrayList集合元素


(1)Add方法

将对象添加到ArrayList集合的结尾处

语法:public virtual int Add(Object value)

说明:value表示要加到ArrayList的末尾处的Object,该值可以为空引用。其返回值为ArrayList索引,表示已在此处添加了value


(2)Insert方法

将元素插入ArrayList集合的指定索引处

语法:public virtual void Insert(int index,Object value)

说明:index表示从零开始的索引,应在该位置插入value;value表示要插入的Object,该值可以为空引用。


注意:其实也可以用InsertRange方法给ArrayList插入一个数组的。

List.InsertRange(index,一位数组名)




6.删除ArrayList集合元素


(1)Clear方法

移除ArrayList中所有的元素

语法:public virtual void Clear()


(2)Remove方法

ArrayList中移除特定对象的第一个匹配项

语法:public virtual void Remove(Object obj)

说明:obj表示要从ArrayList移除的Object,该值可以为空引用


(3)RemoveAt方法

移除ArrayList的指定索引处的元素

语法:public virtual void RemoveAt(int index)

说明:index表示要移除的元素的从零开始的索引


(4)RemoveRange方法

ArrayList中移除一定范围的元素

语法:public virtual void RemoveRange(int index,int count)

说明:index表示要移除的元素的范围从零开始的索引,count表示要移除的元素数




7.遍历ArrayList集合

ArrayList list = new ArrayList();

list.Add("碟中谍")

list.Add("明日边缘")

foreach(string str in list){Console.Write(str+"")}




8.查找ArrayList集合元素


(1)Contains方法

确定某元素是否在ArrayList集合中

语法:public virtual bool Contains(Object item)

说明:item表示要在ArrayList中查找的Object,该值可以为空引用。其返回值表示,如果在ArrayList中找到item,则为TRUE


(2)IndexOf方法

搜索指定的Object,并返回整个ArrayList中第一个匹配项的从零开始的索引

语法:public virtual int IndexOf(Object value)

说明:value表示要在ArrayList中查找的Object,该值可以为空引用。其返回值表示,如果在ArrayList中找到value的第一个匹配项,则为该项的从零开始的索引,否则为-1


(3)LastIndexOf方法

搜索指定的Object,并返回整个ArrayList中最后一个匹配项从零开始的索引

语法:public virtual int LastIndexOf(Object value)

说明:value表示要在ArrayList中查找的Object,该值可以为空引用。其返回值表示,如果在ArrayList中找到value的最后一个匹配项,则为该项的从零开始的索引,否则为-1