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