c# - Array、ArrayList 和 List 之间有什么区别?

标签 c# arrays list arraylist

<分区>

我想知道 ArrayArrayListList 之间的确切区别是什么(因为它们都有相似的概念)以及在哪里你会用一个而不是另一个。

例子:

数组
对于 Array,我们只能添加我们为此示例声明的类型 int

int[] Array = new Int[5]; //Instansiation of an array
for(int i = 0; i < Array.Length; i++)
{
   Array[i] = i + 5; //Add values to each array index
}

数组列表
我们可以像数组

一样添加值
ArrayList arrayList = new ArrayList();
arrayList.Add(6);
arrayList.Add(8);

列表
同样,我们可以像在 Array

中那样添加值
List<int> list = new List<int>();
list.Add(6);
List.Add(8);

我知道在 List 中你可以拥有通用类型 这样你就可以传入任何你不能在 Array 中做的类型但我的确切问题是:

  • 你会在什么地方使用一个而不是另一个?
  • 三者在功能方面的确切区别?

最佳答案

它们是不同的对象类型。它们具有不同的功能并以不同的方式存储数据。

数组 ( System.Array ) 一旦分配,其大小就固定了。您不能向其中添加项目或从中删除项目。此外,所有元素必须是同一类型。因此,它是类型安全的,并且在内存和性能方面也是三者中最高效的。此外,System.Array 支持多维度(即它具有 Rank 属性),而 List 和 ArrayList 不支持(尽管您可以根据需要创建列表的列表或 ArrayList 的 ArrayList)。

ArrayList是一个灵活的数组,其中包含一个对象列表。您可以在其中添加和删除项目,它会自动处理分配空间。如果您在其中存储值类型,它们将被装箱和拆箱,这可能会有点低效。此外,它不是类型安全的。

A List<>利用泛型;它本质上是 ArrayList 的类型安全版本。这意味着没有装箱或拆箱(这提高了性能),如果您尝试添加错误类型的项目,它将生成编译时错误。

关于c# - Array、ArrayList 和 List 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32020000/

相关文章:

c# - 在 C# 中将一个对象转换为另一个对象

使用 ThreadPool 的 C# Execute 方法(带参数)

php - 从 XML 到 PHP 到数组到 JSON 对象

python - 每当触发 else 语句时,如何在 for 循环中创建新列表

database - 有没有办法在 SQLite 中获取表的约束?

c# - C#Youtube api V3-值不能为空错误异常

c# - WPF TextBlock 绑定(bind)不起作用

javascript - 无法让它显示从数组到 html 的文本

javascript - 我可以使用 reduce 将数组转换为具有自定义键并计算重复值的对象数组吗?

c - semaphore.c 中的等待列表实现