C# 中的数组列表与列表

Muhammad Maisam Abbas 2023年10月12日
  1. C# 中的 ArrayList
  2. C# 中的列表
  3. ArrayLists vs C# 中的列表
C# 中的数组列表与列表

本教程将讨论 C# 中 ArrayList 和 List 之间的区别和相似之处。

C# 中的 ArrayList

ArrayList用于在 C# 中声明 ArrayList。ArrayList 在其中存储对象引用。这意味着 ArrayList 可以在其中存储多种数据类型的数据,例如整数、字符串、浮点数等。以下代码示例向我们展示了如何在 C# 中初始化 ArrayList

ArrayList array1 = new ArrayList();
array1.Add(1);
array1.Add("Pony");
foreach (var x in array1) {
  Console.WriteLine(x);
}

输出:

1
Pony

在上面的代码中,我们创建了 ArrayList 类的实例 array1,并在其中存储了不同数据类型的不同值。

C# 中的列表

在 C# 中,通用列表被用来保存一种特定数据类型的数据。List用于声明 C# 中特定数据类型的列表。我们需要在声明期间指定列表的数据类型。以下代码示例向我们展示了如何在 C# 中初始化 List

List<int> list1 = new List<int>();
list1.Add(1);
list1.Add(2);
foreach (var x in list1) {
  Console.WriteLine(x);
}

输出:

1
2

在上面的代码中,我们创建了 List 类的实例 list1,该实例包含整数数据类型并存储了整数值。

ArrayLists vs C# 中的列表

由于 ArrayList 类的转换开销,List 类必须总是比 ArrayList 类更可取。List 类可以使我们免于由于 ArrayList 类元素的数据类型不同而遇到的运行时错误。这些列表在 Linq 中也非常易于使用。下面的编码示例显示了数组列表的问题。

ArrayList arrayExample = new ArrayList();
arrayExample.Add(2);
arrayExample.Add("DelftStack");
int total = 0;
foreach (int num in arrayExample) {
  total += num;
}

当我们在数组列表中添加值 DelftStack 时,以上代码在编译期间不会出错。但是我们将遇到运行时错误,因为我们要将 DelftStack 强制转换为整数变量 num。通过简单地使用列表而不是数组列表可以避免该问题。

List<int> listExample = new List<int>();
listExample.Add(1);
listExample.Add(2);
int total = 0;
foreach (int num in listExample) {
  total += num;
}

上面的代码可以完美运行,没有任何错误。每当我们尝试将 DelftStack 添加到仅保存整数数据类型值的列表时,列表都会给我们一个编译时错误。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Csharp List