Array、ArrayListとList(それらはすべて同様の概念を持っているので)とどこで使用するかとの正確な違いは何なのかと思います上下に。
例:
配列
Arrayの場合、この例で宣言するタイプ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
Arrayのように値を追加できます
ArrayList arrayList = new ArrayList();
arrayList.Add(6);
arrayList.Add(8);
リスト
ここでもArrayのように値を追加できます
List<int> list = new List<int>();
list.Add(6);
List.Add(8);
Listでジェネリック型を使用できるため、Arrayで実行できない型を渡すことができますが、正確な質問は次のとおりです。
それらは異なるオブジェクトタイプです。それらは異なる機能を持ち、異なる方法でデータを保存します。同様に、小数とDateTimeの違いを尋ねることができます。
配列(System.Array
)は、割り当てられるとサイズが固定されます。アイテムを追加したり、アイテムを削除したりすることはできません。また、すべての要素は同じタイプでなければなりません。その結果、タイプセーフであり、メモリとパフォーマンスの両方の面で3つの中で最も効率的です。また、System.Arrayは複数のディメンションをサポートしています(つまり、 Rank プロパティがあります)が、ListとArrayListはサポートしていません(ただし、必要に応じてListのListまたはArrayListのArrayListを作成できます)。
ArrayList
は、オブジェクトのリストを含む柔軟な配列です。アイテムを追加および削除でき、スペースの割り当てを自動的に処理します。値型を格納する場合、それらはボックス化およびボックス化解除されるため、少し非効率的です。また、タイプセーフではありません。
List<>
ジェネリックを活用します。これは、本質的にArrayListのタイプセーフバージョンです。これは、ボックス化またはボックス化解除(パフォーマンスの向上)がなく、間違ったタイプのアイテムを追加しようとすると、コンパイル時エラーが生成されることを意味します。