enum型の値を示す文字列を取得する - enum値の文字列名での列挙と enum型からstring型への変換 - C#

UI

下図のUIを準備します。

コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace EnumToString
{
  public partial class FormMain : Form
  {
    public enum PictureMode { PM_COLOR, PM_MONOCROME, PM_SEPIA, PM_NONE }
 
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      textBox1.Text = "";

      Array array = Enum.GetValues(typeof(PictureMode));
      foreach (PictureMode p in array) {
        textBox1.Text += p +"\r\n";
      }
    }

    private void button2_Click(object sender, EventArgs e)
    {
      textBox1.Text = Enum.GetName(typeof(PictureMode), PictureMode.PM_MONOCROME);
      //または下記
      //textBox1.Text = Enum.GetName(typeof(PictureMode), 0);
    }
  }
}

解説

Button1はenum型の値を列挙してテキストボックスに表示する例です。
Enum.GetValuesメソッドを呼び出します。引数には取得するenum型のSystem.Type オブジェクトを指定します。戻り値はArrayで受け取ります。受け取ったArrayをforeachでループしenum型の値の一覧をテキストボックスに表示します。

Button2は値からenum型の名前を取得する例です。
Enum.GetNameメソッドを用いて取得します。第一引数には対象のenum型のSystem.Type オブジェクトを指定し、第二引数に値を与えます。戻り値はstring型です。

アプリケーションの実行

アプリケーションを実行します。下図の画面が表示されます。


[Button1]をクリックします。[PictureMode]型の値を列挙してテキストボックスに表示します。


[Button2]をクリックします。値からPictureMode列挙型の名前を表示します。

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