C# 中的陣列列表與列表

Muhammad Maisam Abbas 2024年2月16日
  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