List<T> から配列へ変換する - C#

C#でList<T>から配列へ変換するコードを紹介します。

概要

List<T>から配列へ変換する場合には、ListクラスのToArrayメソッドを利用します。
メモ
逆の処理である配列からList<T>に変換する場合のコードはこちらの記事を参照してください。

プログラム例 : List<T> から int[] への変換

Windowsフォームアプリケーションを作成し、プログラムを作成します。

UI

下図のUIを作成します。フォームにMultiLinesプロパティをtrueに設定したテキストボックス、ボタンを配置します。今回は[button1]のみを利用します。

コード

下記のコードを記述します。[button1]のクリックイベントを実装します。
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 ArrayListConvert
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      List<int> vlist = new List<int>();
      vlist.Add(5);
      vlist.Add(20);
      vlist.Add(100);
      vlist.Add(400);
      vlist.Add(80);

      int[] array;
      array = vlist.ToArray();

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

解説

下記コードにてint型のリストを作成し、値を設定しています。
  List<int> vlist = new List<int>();
  vlist.Add(5);
  vlist.Add(20);
  vlist.Add(100);
  vlist.Add(400);
  vlist.Add(80);

リストの値は下記に設定されます。

リストのインデックス01234
52010040080

下記コードでリストを配列に変換し、array配列に代入します。
  int[] array;
  array = vlist.ToArray();

forループで配列の値を参照しテキストボックスに出力します。
  for (int i=0; i<array.Length;i++) {
    textBox1.Text += array[i] + "\r\n";
  }

実行結果

[button1]をクリックします。下図の実行結果となります。Listに挿入された値が配列にコピーされ、その値がテキストボックスに表示されます。

プログラム例 : List<T> から string[] への変換

List<T> から string[] に変換する場合は
ToArray() メソッドを使います

UI

下図のUIを作成します。フォームにMultiLinesプロパティをtrueに設定したテキストボックス、ボタンを配置します。今回は[button3]のみを利用します。

コード

下記のコードを記述します。[button3]のクリックイベントを実装します。
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 ArrayListConvert
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button3_Click(object sender, EventArgs e)
    {
      List<string> itemlist = new List<string>();
      itemlist.Add("Penguin");
      itemlist.Add("Duck");
      itemlist.Add("Whale");
      itemlist.Add("Bear");
      itemlist.Add("Owl");

      string[] array;
      array = itemlist.ToArray();

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

  }
}

解説

string型のリストを作成し値を追加します。
  List<string> itemlist = new List<string>();
  itemlist.Add("Penguin");
  itemlist.Add("Duck");
  itemlist.Add("Whale");
  itemlist.Add("Bear");
  itemlist.Add("Owl");

配列を作成し、リストのToArray()メソッドを呼び出し配列に変換します。
  string[] array;
  array = itemlist.ToArray();

forループで配列の値を参照しテキストボックスに値を表示します。
  for (int i = 0; i < array.Length; i++) {
    textBox1.Text += array[i] + "\r\n";
  }

実行結果

[button3]をクリックします。Listに挿入された文字列の値が、配列にコピーされ、配列の値がテキストボックスに表示されます。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2018-03-13
iPentec all rights reserverd.