在C#中,ArrayList和List<>的区别

43 浏览
0 Comments

在C#中,ArrayList和List<>的区别

在 C# 中,ArrayListList<> 有什么区别?

仅仅是 List<> 有类型而 ArrayList 没有吗?

admin 更改状态以发布 2023年5月23日
0
0 Comments

使用 List 可以避免类型转换错误。它非常有用,可以避免运行时的类型转换错误。

示例:

这里使用 ArrayList 你可以编译这段代码,但是稍后你会看到一个执行错误。

ArrayList array1 = new ArrayList();
array1.Add(1);
array1.Add("Pony"); //No error at compile process
int total = 0;
foreach (int num in array1)
{
 total += num; //-->Runtime Error
}

如果使用 List,可以避免这些错误:

List list1 = new List();
list1.Add(1);
//list1.Add("Pony"); //<-- Error at compile process
int total = 0;
foreach (int num in list1 )
{
 total += num;
}

参考链接:
MSDN

0
0 Comments

是的,差不多就是这样。 List 是一个泛型类。它支持存储特定类型的值,无需从 object 进行强制转换(当 T 是值类型时,在 ArrayList 情况下,这将产生装箱/拆箱开销)。ArrayList 只是存储 object 引用。作为一个泛型集合,List 实现了泛型 IEnumerable 接口,并可以在 LINQ 中轻松使用(无需任何 CastOfType 调用)。

ArrayList 属于 C# 没有泛型的早期时期。现在它已被废弃,推荐使用 List。除非你必须与使用它的旧 API 进行接口,否则不应在面向 .NET >= 2.0 的新代码中使用 ArrayList

0