或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。最近はスロット放浪記やってます。。

C#::Enumの定義名と値を取得して出力してみた。Enum.GetValues(),Enum.Format()

Enumの使い方からちょっとずれているかもしれないが・・・。

Enumの定義が以下だったとする。

  enum DayofWeek
        {
            Sunday     = 1,
            Monday     = 2,
            Tuesday    = 4,
            Wednesday  = 8,
            Thursday   = 16,
            Friday     = 32,
            Saturday   = 64,
        }

とすると、定義名を取得したいこともあれば、値を取得したいと思うこともあるはずだ。本来、Enumは値を意識しないで使えるところがメリットなので、こういう使い方は邪道かもしれない。HashTableで、Keyと値のような使い方と似た使い方にもなってしまう。Enumは列挙の順序を気にするのに対して、HashTableは順序はまったく気にしないという点は違うかもしれないが。

Sample Code(サンプルコード)

 foreach( DayofWeek day in Enum.GetValues(typeof(DayofWeek)))
           {
               Debug.WriteLine("{0,-10}{1,4}{2,10}", day.ToString(), ":", Enum.Format(typeof(DayofWeek), day, "d"));
           }

Result(実行結果)

Sunday       :         1
Monday       :         2
Tuesday      :         4
Wednesday    :         8
Thursday     :        16
Friday       :        32
Saturday     :        64