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
添加到仅保存整数数据类型值的列表时,列表都会给我们一个编译时错误。
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