C#的ArrayList集合的使用

时间:2022-05-06 05:21:27

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

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

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