ArrayList详解:用法与关键方法

需积分: 50 7 下载量 146 浏览量 更新于2024-09-29 收藏 6KB TXT 举报
"ArrayList是.NET框架中常用的一种动态数组,属于System.Collections.ArrayList类。它允许在集合中存储对象,提供了灵活的添加、删除和访问元素的方法。ArrayList是基于数组实现的,因此它具有索引访问的特点,但不同于固定大小的数组,ArrayList可以自动调整其容量以适应元素数量的增长。它实现了ICollection和IList接口,这意味着它可以被用作其他集合类的源或目标。 在使用ArrayList时,首先需要创建一个实例,例如: ```csharp ArrayList list = new ArrayList(); ``` 这将创建一个默认初始容量为16的ArrayList。若需指定初始容量,可以通过传递整数参数来创建: ```csharp ArrayList list = new ArrayList(100); // 创建容量为100的ArrayList ``` ArrayList的重要方法包括: 1. `Add(object item)`: 向ArrayList末尾添加一个元素。例如: ```csharp for (int i = 0; i < 10; i++) list.Add(i); ``` 2. `RemoveAt(int index)`: 删除指定索引位置的元素。例如: ```csharp list.RemoveAt(5); // 删除第六个元素 ``` 3. `AddRange(ICollection c)`: 将另一集合的所有元素添加到ArrayList末尾。例如: ```csharp for (int i = 0; i < 3; i++) list.Add(i + 20); ``` 或者使用其他集合: ```csharp ArrayList anotherList = ...; list.AddRange(anotherList); ``` 4. `ToArray(Type t)`: 将ArrayList转换为指定类型的数组。例如: ```csharp Int32[] values = (Int32[])list.ToArray(typeof(Int32)); ``` 这会创建一个新的Int32数组,包含ArrayList中的所有元素。 5. `IsSynchronized` 和 `Synchronized`: `IsSynchronized` 属性用于检查ArrayList是否是线程安全的。默认情况下,ArrayList不是线程安全的。如果需要线程安全的访问,可以使用 `Synchronized` 方法创建一个同步版本的ArrayList: ```csharp ArrayList synchronizedList = ArrayList.Synchronized(list); ``` 使用同步ArrayList时,通常需要配合`lock`语句来确保并发访问的安全性: ```csharp lock (synchronizedList.SyncRoot) { synchronizedList.Add(AddaItem); } ``` 6. `Count` 和 `Capacity`: `Count` 属性表示ArrayList中当前元素的数量,而 `Capacity` 表示ArrayList的实际容量,即已分配的元素空间。当`Count`超过`Capacity`时,ArrayList会自动扩展容量。 7. `AddRange(ICollection c)`, `Remove(object value)`, `RemoveAt(int index)`, `RemoveRange(int index, int count)`, `Insert(int index, object value)` 和 `InsertRange(int index, ICollection c)`: 这些方法分别用于批量添加元素、按值删除元素、按索引删除元素、删除一段范围内的元素、在指定位置插入单个元素以及批量插入元素。 这些基本操作使得ArrayList成为.NET框架中处理可变大小数据集的常用工具。在处理大量数据或需要高效随机访问时,考虑使用更现代的类型,如`List<T>`,它提供了类型安全并且性能通常优于ArrayList。"