Enum型をループで回す

2020-03-25

Enum型をループで回すには、Enum.GetNames もしくは Enum.GetValues を用いる。
また、数値→Enum型はEnum型にキャストを、
Enum型→数値はInt型にキャストを、
Enum型→名前はToStringを用いる。

private enum enmColor
{
    Red = 1,
    Green = 2,
    Blue = 3
}

private void button1_Click(object sender, EventArgs e)
{
    string strResult = "";

    foreach (int intNum in Enum.GetValues(typeof(enmColor)))
    {
        enmColor objColor = (enmColor)intNum;
        strResult += string.Format("{0}:{1}", ((int)objColor).ToString(), objColor.ToString());
    }

    MessageBox.Show(strResult);
    /*
        1:Red
        2:Green
        3:Blue
     */
}