C#の「列挙型(enum)を列挙するには?」禅問答への短い回答。

with コメントはまだありません

プログラミングをしていると、当たり前のことを当たり前にやるのに往生することがある。それは人生も同じ(笑いどころ)

やりたいことがすごくハッキリとしているにも関わらず、ウネウネと遠回りしている方法で実現しているレファレンスばかり見つかって、ふへ〜とタバコを吸いたくもなる。

それは特にXamlを触っている時に多いけれど、つい最近、Enumのメンバーをすべて列挙するにはどうすればいいかわからなくなった。

Enumのメンバーを列挙するという、「列挙型を列挙する」方法って、そういえばあまりやってこなかったなと。

この禅問答のような問への回答は、Microsoftが用意している。やったぜナデラ!

 

そのものずばりなEnum.GetValues()

こういう列挙体を列挙したいとする。

 

それには、Enum.GetValues()メソッドを使ってenumメンバーを全取得すればいい。

GetValues()に渡すのは、enumの型情報。

この作例では、メンバーを取得し、文字列に変換し、コンソールに出力している。ごちゃごちゃとやっているけれど、foreachの一行だけが今回の重要ポイント。

 

これを実行するとこうなる。

 

GetNames()もあるでよ

ちなみに、今回のように文字列としてenumメンバーが欲しいだけならGetNames()を使うと、enumメンバーを文字列化する手間が省けてなおイイ。

 

C#おすすめ図書

他の言語をやったことがあって、その言語の作法でC#を書いちゃったことのある人へ

 

他人にとって読みやすいコードを書くための永遠の名著