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
をリストに追加しようとすると、リストによってコンパイル時エラーが発生します。
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