.net column
.NET開発者のためのブログメディア

C#のListとArrayListの使い方や違いとは?

 
C#のListとArrayListの使い方や違いとは?
基本情報技術者試験の試験対策はこちら>>

C#で可変長のデータを扱う際に使用するのが、ListやArrayListです。コレクションとも呼ばれています。
同じような名前で、可変長のデータが扱えるという点は同じですが、使い方や機能の違いがあるので、それを把握して使うことが大切です。

PG
ListとArrayListは同じような名前ですが、どんな違いがあるのでしょうか?使い方を教えてください。
PL
可変長のデータが扱えるという点は同じですが、違いがあるので把握してから使うことが大切です。

C#のArrayListの使い方

ArrayListは、以下の形式でインスタンスを作成します。

ArrayList型を宣言する場合、インスタンスを作成する時点でArrayListに入る型が決まっていないため、ArrayListに格納されている値を使用する時にキャストが必要になります。

以下に例を記載します。

それぞれ、string型とint型でListを作成し、値を格納していますが、格納した値を取り出している箇所に注目です。

格納されている値の型が決まっていないため、キャストをする必要があります。

実行したコンソールは以下のようになります。

実行結果1

C#のListの使い方

対して、Listはジェネリックの仕組みを使っていることが特徴です。
ジェネリックとは、インスタンスを作成する時に型を指定することで、そのListが扱っているデータの型を明確にするものです。

Listは以下の形式でインスタンスを作成します。

というのがジェネリックを使用している部分で、インスタンスを作成する際に型を指定します。

例えば、string型のListを作成する場合は、

となります。

int型のListを作成する場合は、

となります。

このように、インスタンスを作成する時点でListに入る型が明確になるため、Listに格納されている値を使用する時にキャストが不要になり、手間が少ないです。
ArrayListではこういった型を指定したインスタンスの作成ができないので、使用する際にキャストが必要になるなど手間が増えてしまいます。

以下に例を記載します。

それぞれ、string型とint型でListを作成し、値を格納していますが、格納した値を取り出している箇所に注目です。

それぞれListから値を取り出していますが、Listの中に格納されている値の型が既に決まっているため、キャストが不要となっています。

実行したコンソールは以下のようになります。

実行結果2

PG
ListとArrayListの違いが分かりました。Listの方が簡単なのですね。
PL
ListとArrayListは同じ機能ですが、Listの方が簡単に実装できるのでおすすめです。

ListとArrayListの機能は同じでもListの方が使いやすい

ListとArrayListは同じ可変長のデータを扱うものですが、実装の内容に差がありました。
型が明確になるListの方が実装も簡単で分かりやすいので、Listを使用してみると良いでしょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags