List<T>を利用したリストのコードと実行結果

C#で List<T> (List<type>) を用いてリストを利用するコードと実行結果を紹介します。

概要

C# 2.0以降ではではジェネリクスが使えるようになりました。ジェネリクスを使うと動的な要素のリストやデータコンテナ型をシンプルに記述できます。 また、Listはリストの要素に添え字でアクセスできるため、動的な配列のように扱うこともできます。

List<T>の宣言

書式

List<(型名)> (オブジェクト名/変数名);

記述例

  List<string> TextList;

List<T>の初期化

書式

(オブジェクト名/変数名) = new List<(型名)>();

記述例

  numberList = new List<int>();

List<T>への要素の追加

リストに要素を追加する場合は、Addメソッドを利用します。

書式

(オブジェクト名/変数名).add((追加するオブジェクト));

記述例

TextList.add("Penguin");

プログラム例

UI

下図のUIを作成します。フォームにButtonとTextBoxを配置します。TextBoxはMultiLinesプロパティをTrueに設定し複数行テキストボックスにします。
List<T>を利用したリストのコードと実行結果:画像1

コード

以下のコードを記述します。

FormMain.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ListDemo
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        List<string> strData = new List<string>();
        strData.Add("Penguin");
        strData.Add("Duck");
        strData.Add("Dorphin");
        strData.Add("Camel");

        for (int i=0; i < strData.Count; i++) {
          textBox1.Text += strData[i] +"\r\n";
        }
    }
  }
}

解説

以下のコードによりListのインスタンスを作成します。

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


以下の記述により(型名)型のリストを作成できます。今回はstring型のリストを作成しています。

List<(型名)>


以下のコードにより、Listに値を追加します。Addメソッドにより値をリストに追加できます。ArrayListとは異なり、Addメソッドの引数に与えられる型はstring型のみです。

  strData.Add("Penguin");
  strData.Add("Duck");
  strData.Add("Dorphin");
  strData.Add("Camel");


リストの要素を取り出し、テキストボックスに表示します。 リストの要素には次の書式でアクセスできます。取り出される型もリスト作成時に宣言した型で取り出せます。

リストのインスタンス[インデックス番号]
  for (int i=0; i < strData.Count; i++) {
    textBox1.Text += strData[i] +"\r\n";
  }

実行結果

プロジェクトを実行します。ウィンドウが表示されますので、button1をクリックします。
テキストボックスに下図の結果が表示されます。
List<T>を利用したリストのコードと実行結果:画像2

参考情報

ArrayListで記述した場合のコードは以下になります。
リストへの値の追加はジェネリクスを使った場合と変わりません。厳密には引数がobject型か宣言時に記述した型かの違いがあります。
リストの要素を取り出すコードはジェネリクスを使った場合は宣言時に記述した型で取り出せますが、ArrayListではobject型になるため、キャストが必要になります。
ArrayListの利用の詳細についてはこちらの記事を参照してください。

private void button7_Click(object sender, EventArgs e)
{
  ArrayList strData = new ArrayList();
  strData.Add("Penguin");
  strData.Add("Duck");
  strData.Add("Dorphin");
  strData.Add("Camel");

  for (int i=0; i < strData.Count; i++) {
    textBox1.Text += (string)strData[i] + "\r\n";
  }
}
AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2011-01-08
Copyright © 1995–2025 iPentec all rights reserverd.