第18节、C#集合.ArrayList集合类
ArrayList集合类
简述:arrayList类相当于一种高级的动态数组,它是Array类的升级版,以类区别
- 数组的容器是固定的,而ArrayList容器可以根据需要自动扩展
- ArrayList提供添加、删除、插入某一范围元素的方法,而数组只能一次获取或者设置一个元素的值
- ArrayList提供将只读、固定大小包装返回到计集合的方法,而数组不提供
- ArrayList只能是一位数组,而数组可以多维数组
1.1 ArrayList声明
提供三种方式声明
ArrayList list=new ArrayList();
ArrayList list=new ArrayList(arryName); arryName表示可以添加集合的数组名
ArrayList list=new ArrayList(n);你表示空间大小
1.2ArrayList Add、Insert、Clear、Remove、RemoveAt、RemoveRange方法使用示例如下
完整代码如下:
1 #region ArrayList添加 add 2 int[] a = { 1, 2, 5, 6 }; 3 ArrayList list = new ArrayList(a); 4 list.Add(3); 5 6 foreach (int i in list) 7 { 8 Console.WriteLine("ArrayList.add后" + i); 9 } 10 #endregion 11 12 //该方法用来将元素插入集合的指定索引处 13 #region ArrayList插入 Insert 14 int[] a2 = { 1, 2, 5, 6 }; 15 ArrayList list2 = new ArrayList(a2); 16 list2.Insert(2, 3);//第一个参数是表示下标,第二个参数时代表插入值 17 18 foreach (int i in list2) 19 { 20 Console.WriteLine("ArrayList.Insert后" + i); 21 } 22 #endregion 23 24 //该方法用来从ArrayList删除所有元素 25 #region ArrayList清除 Clear 26 int[] a3 = { 1, 2, 5, 6 }; 27 ArrayList list3 = new ArrayList(a3); 28 list3.Clear();//清除所有 29 30 foreach (int i in list3) 31 { 32 Console.WriteLine("ArrayList.Clear后" + i); 33 } 34 #endregion 35 36 //该方法用来从ArrayList中移除特定对象的第一个匹配项 37 #region ArrayList 删除 Remove 38 int[] a4 = { 1, 2, 5, 6 }; 39 ArrayList list4= new ArrayList(a4); 40 list4.Remove(2);//删除匹配的 41 42 foreach (int i in list4) 43 { 44 Console.WriteLine("ArrayList.Remove后" + i); 45 } 46 #endregion 47 48 //该方法用来从ArrayList中移除指定索引处元素 49 #region ArrayList 索引删除 RemoverAt 50 int[] a5 = { 1, 2, 5, 6 }; 51 ArrayList list5 = new ArrayList(a5); 52 list5.RemoveAt(3);//删除下标位置的 53 54 foreach (int i in list5) 55 { 56 Console.WriteLine("ArrayList.RemoveAt后" + i); 57 } 58 #endregion 59 60 //该方法用来从ArrayList从某个索引开始删除,删除多个数值 61 #region ArrayList 删除 RemoveRange 62 int[] a6 = { 1, 2, 5, 6 }; 63 ArrayList list6 = new ArrayList(a6); 64 list6.RemoveRange(0,1);//删除位置加长度的 65 66 foreach (int i in list6) 67 { 68 Console.WriteLine("ArrayList.RemoveRange后" + i); 69 } 70 #endregion 71 Console.ReadLine();
ArrayList类中常用的属性和方法如下
属性或方法 | 作用 |
---|---|
int Add(object value) | 向集合中添加 object 类型的元素,返回元素在集合中的下标 |
void AddRange(ICollection c) | 向集合中添加另一个集合 c |
Capacity | 属性,用于获取或设置集合中可以包含的元素个数 |
void Clear() | 从集合中移除所有元素 |
bool Contains(object item) | 判断集合中是否含有 item 元素,若含有该元素则返回 True, 否则返回 False |
void CopyTo(Array array) | 从目标数组 array 的第 0 个位置开始,将整个集合中的元素复制到类型兼容的数组 array 中 |
void CopyTo(Array array,int arraylndex) | 从目标数组 array 的指定索引 arraylndex 处,将整个集合中的元素赋值到类型兼容的数组 array 中 |
void CopyTo(int index,Array array,int arrayIndex,int count) | 从目标数组 array 的指定索引 arrayindex 处,将集合中从指定索引 index 开始的 count 个元素复制到类型兼容的数组 array 中 |
Count | 属性,用于获取集合中实际含有的元素个数 |
int IndexOf(object value) | 返回 value 值在集合中第一次出现的位置 |
int IndexOf(object value,int startIndex) | 返回 value 值在集合的 startindex 位置开始第一次出现的位置 |
int IndexOf(object value,int startIndex,int count) | 返回 value 值在集合的 startindex 位置开始 count 个元素中第一次出现的位置 |
int LastIndexOf(object value) | 返回 value 值在集合中最后一次出现的位置 |
int LastIndexOf(object value,int startIndex) | 返回 value 值在集合的 startindex 位置开始最后一次出现的位置 |
int LastIndexOf(object value,int startIndex,int count) | 入元素 value值在集合的 startindex 位置开始 count 个元素中最后一次出现的位置 |
void Insert(int index,object value) | 返回 value 向集合中的指定索引 index 处插 |
void InsertRange(int index,ICollection c) | 向集合中的指定索引 index 处插入一个集合 |
void Remove(object obj) | 将指定兀素 obj 从集合中移除 |
void RemoveAt(int index) | 移除集合中指定位置 index 处的元素 |
void RemoveRange(int index,int count) | 移除集合中从指定位置 index 处的 count 个元素 |
void Reverse() | 将集合中的元素顺序反转 |
void Reverse(int index,int count) | 将集合中从指定位置 index 处的 count 个元素反转 |
void Sort() | 将集合中的元素排序,默认从小到大排序 |
void Sort(IComparer comparer) | 将集合中的元素按照比较器 comparer 的方式排序 |
void Sort(int index,int count,IComparer comparer) | 将集合中的元素从指定位置 index 处的 count 个元素按照比较器 comparer 的方式排序 |
void TrimToSize() | 将集合的大小设置为集合中元素的实际个数 |