Fun Coding

学んだことを記録していきます!

【C#】int型を列挙型に変換する方法

int型を列挙型に変換する方法をサンプルコードを交えて解説したいと思います。

説明

方法は2つあります。
挙動は変わらないため、どちらでも良いと思います。

キャストする
Enum.ToObjectメソッドを使用する

コード
using System;

namespace Sample {
    /// <summary>
    /// メインプログラム
    /// </summary>
    public class Program {
        /// <summary>
        /// 曜日の列挙型
        /// </summary>
        private enum DayOfWeek {
            /// <summary>日曜日</summary>
            Sunday = 0,
            /// <summary>月曜日</summary>
            Monday,
            /// <summary>火曜日</summary>
            Tuesday,
            /// <summary>水曜日</summary>
            Wednesday,
            /// <summary>木曜日</summary>
            Thursday,
            /// <summary>金曜日</summary>
            Friday,
            /// <summary>土曜日</summary>
            Saturday
        }

        /// <summary>
        /// int型を列挙型に変換する方法
        /// </summary>
        static void Main() {
            // 日曜日
            int sunday = 0;
            Console.WriteLine(sunday + "は" + (DayOfWeek) sunday);

            // 月曜日
            int monday = 1;
            Console.WriteLine(monday + "は" + (DayOfWeek) monday);

            // 火曜日
            int tuesday = 200;
            Console.WriteLine(tuesday + "は" + (DayOfWeek) tuesday);

            // 水曜日
            int wednesday = 3;
            Console.WriteLine(wednesday + "は" + (DayOfWeek) Enum.ToObject(typeof(DayOfWeek), wednesday));

            // 木曜日
            int thursday = 4;
            Console.WriteLine(thursday + "は" + (DayOfWeek) Enum.ToObject(typeof(DayOfWeek), thursday));

            // 金曜日
            int friday = 5;
            Console.WriteLine(friday + "は" + (DayOfWeek) Enum.ToObject(typeof(DayOfWeek), friday));

            // 土曜日
            int saturday = 600;
            Console.WriteLine(saturday + "は" + (DayOfWeek) Enum.ToObject(typeof(DayOfWeek), saturday));
        }
    }
}
出力
0はSunday
1はMonday
200200
3はWednesday
4はThursday
5はFriday
600600