C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の組み込みデータ構造:ListとArrayListの基本を解説

C#には、開発を効率化するための組み込みデータ構造が数多く用意されています。本記事では、その中でも特によく利用される「List」と「ArrayList」の2つについて、それぞれの特徴と基本的な使い方を解説します。

List(ジェネリックコレクション)

List<T>はジェネリックコレクションであり、格納する要素の型を明示的に指定できるのが大きな特徴です。一方で、ArrayListは非ジェネリックコレクションに分類されます。

配列とは異なり、Listは要素数を実行時に動的に増減させることができます。あらかじめサイズを固定する必要がないため、要素数が事前にわからない場合でも柔軟に対応できるのが魅力です。

まずは、Listを宣言して初期化する方法を見てみましょう。

List<string> myList = new List<string>();

ArrayList(非ジェネリックコレクション)

ArrayListは、個別にインデックスアクセスが可能なオブジェクトの順序付きコレクションを表します。異なる型のオブジェクトを同一のコレクションに格納できる点が特徴ですが、その反面、ボックス化・ボックス化解除によるパフォーマンスへの影響や、型安全性の低下には注意が必要です。

ArrayListの宣言と要素の追加は、次のように行います。

ArrayList arr = new ArrayList();
arr.Add(67);
arr.Add(34);
arr.Add(99);
arr.Add(45);

ListとArrayListの使い分けのポイント

現代のC#開発では、型安全でパフォーマンスに優れたList<T>の使用が推奨されています。ArrayListは主に後方互換性のために残されている機能であるため、新規プロジェクトでは原則としてList<T>を選択するとよいでしょう。

  1. データ構造入門:最小全域木(Minimum Spanning Tree)とは

    全域木(スパニングツリー)とは全域木(スパニングツリー)とは、無向グラフの部分集合であり、グラフ内のすべての頂点を最小限の数の辺で接続した木構造のことを指します。グラフ内のすべての頂点が互いに連結されている場合、必ず少なくとも1つの全域木が存在します。また、1つのグラフに対して、複数の全域木が存在することもあります。最小全域木(MST)とは最小全域木(Minimum Spanning Tree:MST)とは、連結された重み付き無向グラフにおいて、すべての頂点を接続しながら、辺の重みの合計が最小となるような辺の部分集合です。MSTを求めるアルゴリズムとしては、プリム法(Prims algorit

  2. データ構造における二分木の表現方法|配列と連結リストの違いを解説

    コンピュータメモリ上での二分木の表現方法 ここでは、二分木をコンピュータのメモリ上でどのように表現するかについて解説します。表現方法には主に2種類あり、配列を使う方法と連結リスト(リンクリスト)を使う方法があります。 配列による表現 まず、次のような二分木を例に考えてみましょう。 配列による表現では、木の要素をレベル順(幅優先順)に走査しながら格納していきます。つまり、ノードを上のレベルから順番に保存する方式です。存在しない要素がある場合は、その位置を空白のまま残します。上記の木を配列で表現すると、次のようになります。 123456789101112131415 10516-81520