2015-08-14 48 views
4

我想知道确切的区别是什么阵列的ArrayList列表之间(因为它们都具有相似的概念),并在那里你会使用一个比其他。Array,ArrayList和List之间有什么区别?

实施例:

阵列
对于阵列我们只能补充一点,我们声明对于该示例的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 arrayList = new ArrayList(); 
arrayList.Add(6); 
arrayList.Add(8); 

列表
再象我们在阵列做,我们可以添加值

List<int> list = new List<int>(); 
list.Add(6); 
List.Add(8); 

我知道,在一个列表你可以有通用型这样你就可以在任何类型的传递,你不能在阵列做,但我确切的问题是:

  • 会在哪里你使用一个吗?
  • 三者之间的确切区别功能明智吗?
+0

在http://stackoverflow.com/questions/2309694/arraylist-vs-list-in-c-sharp(用作重复)中列出的ArrayList与列表,数组与ArrayList覆盖在http:// stackoverflow的.com /问题/ 412813 /时使用的-数组列表-过阵列中-C。如果这两个问题不能涵盖您的所有疑虑,请清楚地指出您需要寻找哪些新信息的问题。请务必首先搜索现有问题 - https://www.bing.com/search?q=C%23+array+vs+arraylist –

+0

哦,对不起。学习这个网站的绳索。谢谢你将在未来环顾更多。 – kCC

回答

24

它们是不同的对象类型。他们具有不同的功能并以不同的方式存储他们的数据。你可能会问小数和DateTime之间有什么区别。

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

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

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

相关问题