微软官网文档:
https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.arraylist?view=net-5.0
一.本质
arraylist是C#封装好的类.
本质是object类型的数组.
arraylist封装好了增删查改的方法.
二.申明
需要命名空间using System.Collections;
ArrayList arr = new ArrayList();
三.增删查改
1.增
ArrayList arr = new ArrayList();
arr.Add(1);
arr.Add("123");
arr.Add(new object());
//因为其本质为object数组,所以可以存储任意类型
ArrayList arr = new ArrayList();
ArrayList arr2 = new ArrayList();
arr2.Add(1);
arr.AddRange(arr2);//类似数组拼接,批量增加
若不在末尾增加,而是插入
arr.Insert(0,24);//把第0个位置变成24,其余的往后移
2.删
ArrayList arr = new ArrayList();
arr.Add(1);
arr.Add(1);
//删除后下面的元素会自动补上了
arr.Remove(1);//删除遍历到的第一个1
arr.RemoveAt(0);//指定位置删
arr.Clear();
3.查
ArrayList arr = new ArrayList();
arr.Add(1);
Console.WriteLine(arr[0]);
//查看元素是否存在,返回值bool
if(arr.Contains(1))
{
}
//正向查找元素位置,参数填的是元素内容,不是下标
int index = arr.IndexOf(1);//返回遍历的第一个要找的索引下标,从0开始;若不存在则返回-1
//反向查找元素位置,返回是正向索引下标
index = arr.LastIndexOf(1);
//例如arr中有两个相同元素,正向与反向则影响返回的下标
4.改
ArrayList arr = new ArrayList();
arr.Add(1);
arr[0] = 5;
5.遍历
arr.Count;//返回数组中有内容的数组长度
arr.Capacity;//返回整个数组分配的长度
for(int i=;i<arr.Count;i++)
{
//遍历
}
//迭代器遍历
foreach(var item in arr)
{
Console.WriteLine(item);
}
四.装箱拆箱
由于ArrayList本质是object数组,所以难免存在值类型转换引用类型的装箱拆箱.所以ArrayList尽量少用.但ArrayList的优点是什么类型都能存储.
int i = 1;
arr[0] = i;//装箱
i = (int)arr[0];//拆箱
参考资料<唐老狮C#教程>