0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

C# ArrayListについてのメモ

Posted at

自分用のメモです

ArrayList

配列は宣言時にサイズ(要素数)が固定されるが、ArrayListクラス型の配列を使うと必要に応じて動的にサイズを増加させることが可能。これは、要素を追加するごとにメモリの再割り当てが行われるためである。
ArrayListクラスでは、格納する要素をすべてobject型として扱う。object型はすべてのクラスの基本クラスのため、すべてのデータ型の値を格納することができ、複数のデータ型を混在させることも可能。

  • ArrayListを使う
using System.Collections;
namespace App
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList ary = new ArrayList();
            ary.Add("abc");
            ary.Add(10);

            Console.WriteLine(ary[0]);//abc
            Console.WriteLine(ary[1]);//10

            Console.WriteLine(ary[0].GetType());//String
            Console.WriteLine(ary[1].GetType());//Int32
        }
    }
}

ArrayListのコレクションには、あらゆる型のデータを格納することができる。
string型とint型の値を格納し、GetTypeメソッドで型を取得し表示させる。

  • ArrayListにおけるキャスト

GetType()でコレクションの型を取得したが、これはそれぞれの要素として格納されている値の型が表示されただけで、要素そのものの型はすべてobject型になる。
以下の場合はコンパイルエラーとなる

string str = "abc";
ary.Add(str);//stringがobjectにキャストされる
str = ary[0];//string型の変数にobject型は代入できない

このような場合はキャストを行う必要がある

str = Convert.ToString(ary[0]);
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?