using System.Collections; namespace Lesson1_ArrayList { internal class Program { static void Main(string[] args) { #region 练习题回归 //C#核心中 索引器的练习题 //自定义一个整形数组类,该类中有一个整形数组变量 //为他封装增删查改的方法 #endregion #region 知识点一 ArrayList的本质 //ArrayList是c#为我们封装好的类 //本质是一个Object类型的数组 //ArrayList可以帮我们实现增删改查等功能 #endregion #region 知识点二 声明 //注意:使用ArrayList需要引入命名空间 using System.Collections; ArrayList arrayList = new ArrayList(); #endregion ///可以用F12进ArrayList中查看方法或去微软官方文档查看 #region 知识点三 增删改查 //增 arrayList.Add(1.2f); arrayList.Add("123"); arrayList.Add(new Object()); arrayList.Add(true); //插入 arrayList.Insert(0, "插入的元素");//在指定索引位置插入元素,原来该位置及其后面的元素依次后移 arrayList.AddRange(new int[] { 1, 2, 3, 4, 5 });//一次性添加多个元素 //删 arrayList.Remove("123");//移除指定元素,如果有多个相同元素,只移除第一个 arrayList.RemoveAt(0);//移除指定索引位置的元素 arrayList.RemoveRange(0, 2);//移除从指定索引位置开始的指定个数的元素 arrayList.Clear();//清空所有元素 //改 arrayList[1] = 4; //查 Console.WriteLine(arrayList[0]); if (arrayList.Contains("123")) { //如果包含指定元素执行的代码 } //正向查找指定的元素,返回索引位置,如果没有找到返回-1 int index = arrayList.IndexOf(3); Console.WriteLine(index); //反向查找指定的元素,返回索引位置,如果没有找到返回-1 int lastIndex = arrayList.LastIndexOf(3); Console.WriteLine(lastIndex); #region 遍历 Console.WriteLine(arrayList.Count);//获取元素个数(长度) Console.WriteLine(arrayList.Capacity);//获取ArrayList的容量(用于以后避免产生过多垃圾) for (int i = 0; i < arrayList.Count; i++) { Console.WriteLine(arrayList[i]); } //迭代器遍历 foreach (var item in arrayList)//有个var类型临时变量item来接每次遍历到的元素 { Console.WriteLine(item); } #endregion #endregion #region 知识点四 装箱拆箱 //ArrayList存储的是Object类型的元素 //所以Object类型的数组存储的是值类型时会发生装箱拆箱 //装箱:值类型转换为引用类型的过程 //拆箱:引用类型转换为值类型的过程 //所以ArrayList存储值类型时会影响性能尽量少用 int i = 1; arrayList.Add(i);//发生装箱 int j = (int)arrayList[0];//发生拆箱 #endregion } } }