C# ArrayList
时间: 2025-05-04 18:45:14 浏览: 17
### C# 中 ArrayList 的用法
在 C# 中,`ArrayList` 是一种动态数组结构,允许存储任意类型的对象集合。它属于 `System.Collections` 命名空间的一部分[^5]。尽管现代开发更倾向于使用泛型集合(如 `List<T>`),但在某些情况下仍然可以使用非泛型的 `ArrayList`。
以下是关于如何在 C# 中使用 `ArrayList` 的一些基本操作:
#### 创建和初始化 ArrayList
要创建一个 `ArrayList` 对象,需先引入命名空间 `using System.Collections;` 并实例化该对象:
```csharp
using System;
using System.Collections;
class Program {
static void Main() {
// 初始化一个新的 ArrayList 实例
ArrayList numbers = new ArrayList();
// 添加元素到 ArrayList
numbers.Add(5);
numbers.Add(1);
numbers.Add(-8);
Console.WriteLine("Elements in the ArrayList:");
foreach (var item in numbers) {
Console.WriteLine(item);
}
}
}
```
上述代码展示了如何向 `ArrayList` 中添加整数值并打印其内容[^6]。
#### 遍历 ArrayList
遍历 `ArrayList` 可通过多种方式实现,其中最常见的是使用 `foreach` 循环来访问每个项的内容。需要注意的是,在访问 `ArrayList` 元素时可能需要显式转换数据类型,因为它的成员默认为 `object` 类型[^7]:
```csharp
// 显式转换为 int 类型后再处理
foreach (int number in numbers) {
Console.WriteLine(number * 2); // 输出每项乘以 2 后的结果
}
```
如果不确定列表中具体的数据类型,则可以通过强制转换完成操作:
```csharp
foreach (var obj in numbers) {
if (obj is int num) {
Console.WriteLine(num.ToString());
}
}
```
#### 性能优化建议
虽然 `ArrayList` 提供了灵活性,但由于它是基于非泛型设计的容器,因此存在一定的性能开销以及潜在的安全隐患。对于已知固定类型的场景推荐优先考虑使用泛型版本——即 `List<T>` 来替代之[^8]。
另外值得注意的一点是在 .NET Core/.NET 5+ 版本里,微软官方文档鼓励开发者更多采用 Span<T> 或者 Memory<T> 结构体代替传统 List/Array 当涉及到大量小型值类型储存需求的时候能够带来更好的内存效率表现[^9]。
---
###
阅读全文
相关推荐

















