C#中Array,ArrayList,List<T>的使用以及三者之间的对比

在 C# 中,`Array`、`ArrayList` 和 `List` 都用于存储和管理数据集合,但它们在类型安全性、性能、灵活性和使用场景上存在显著差异。


1.Array(数组)

Array是c#中最基本的集合类型,用于存储相同的数据元素,大小固定,数组大小在声明后不能改变,需要重新声明才能调整大小,只能存储声明时指定的类型,性能安全。

int[]numbers=new int[5]{1,2,3,4,5}
numbers[0]=10;  //修改元素
Console.WriteLine(numbers[0]);
//输出:10

2.ArrayList

ArrayList是一个动态数组,长度不受限,动态调整大小,可以存储任意类型,但是需要显示类型转换,由于需要类型转换和动态扩容,性能不如Array。

ArrayList list = new ArrayList();
list.Add(1);  // 添加整数
list.Add("Hello");  // 添加字符串
int num = (int)list[0];  // 需要显式类型转换
string a=(string)list[1];
Console.WriteLine(num);  // 输出:1
Console.WriteLine(a);  // 输出:Hello

3.List

List是一个泛型集合,用于存储动态大小的元素集合,结合了数组和ArrayList的优点,可以动态调整大小,只能存储跟泛型相关的数据类型,避免了类型转换的开销,拓展方法更多。

List numbers = new List();
numbers.Add(1);  // 添加整数
numbers.Add(2);
int first = numbers[0];  // 直接访问元素
Console.WriteLine(first);  // 输出:1

使用场景:

Array:适用于大小固定且不需要频繁修改的集合。
ArrayList:已过时,不推荐使用。在需要动态集合时,优先选择 `List`。
List:适用于需要动态集合的场景,是现代 C# 开发中的首选。

三者对比:

特性 Array ArrayList List
类型 基础数据结构 非泛型集合 泛型集合
类型安全 类型安全 非类型安全 类型安全
性能 固定大小,高性能 动态大小,性能较低 动态大小,高性能
灵活性 固定大小 动态大小 动态大小
使用场景 固定大小集合  动态集合(已过时) 动态集合(推荐)

你可能感兴趣的:(c#,开发语言)