C# に ArrayList とリストの比較

Muhammad Maisam Abbas 2023年10月12日
  1. C# の ArrayLists
  2. C# のリスト
  3. C# における ArrayLists と Lists の比較
C# に ArrayList とリストの比較

このチュートリアルでは、C# における ArrayLists と Lists の違いと類似点について説明します。

C# の ArrayLists

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<int> list1 = new List<int>();
list1.Add(1);
list1.Add(2);
foreach (var x in list1) {
  Console.WriteLine(x);
}

出力:

1
2

上記のコードでは、整数データ型と格納された整数値を保持する List クラス-list1 のインスタンスを作成しました。

C# における ArrayLists と Lists の比較

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