.net column
.NET開発者のためのブログメディア

C#のenumをstringに変換するには?enumの列挙子をstring型で取得する方法

 
C#のenumをstringに変換するには?enumの列挙子をstring型で取得する方法

SE
enumの使い方について教えてください。

PM
ではenumの基本的な使い方を実際のコードを見ながら理解を深めていきましょう。

C#のenumのstring変換とは?


C#にはenumという列挙型を宣言するキーワードがあります。enumは定数をグループとしてまとめたもので、とても便利に使えます。ただし、enumの定数をstring型に変換にしたいのにそのやり方がわからないことはよくあると思います。

この記事ではenumの基本的な使い方と、string型に変換するいくつかの方法を解説します。是非ご覧下さい。

enumの使い方

enumは以下のC#サンプルのように宣言します。SolarSystemがオブジェクト名で、SunやMercuryが列挙子です。

enumは以下のように日本語も使用できます。

enumの値の操作

enumの列挙子はint型で先頭から0,1,2,3…のように数値が割り当てられています。型や値を変更するには以下のようにします。

以下のようにすればenumの全ての数値を取得することができます。

実行結果は以下のようになります。

2
3
4
5
6
10
11
12
13

enumとswitch文を組み合わせる

enumはswitch文と組み合わせて使うと大変便利です。caseにenumの列挙子を使うことで、switch文の意図がわかりやすくなります。以下のC#サンプルをご覧ください。

実行結果は以下のように表示されます。

内惑星系です。

列挙子の数値を取り出す方法

列挙子の数値を取り出す方法については、上のforeachですべて取り出す方法を紹介しました。特定の列挙子を1つだけ取り出す場合は、以下のC#サンプルのように数値型にキャストすることで取得できます。

結果は以下になります。

Marsの数値は4

enumの列挙子をstring型で取り出す方法その1

それでは本題のenumの列挙子をstring型で取り出す方法を解説します。最初のやり方は、以下のC#サンプルのようにToStringメソッドで取り出す方法です。

実行結果は以下になります。

Jupiter

なお以前のサンプルのように列挙子と他の文字列とを+でつないだ場合、列挙子に対しては自動的にToString()が呼び出されています。

enumの列挙子をstring型で取り出す方法その2

EnumクラスのGetNameメソッドでも文字列で列挙子を取得することができます。以下のC#サンプルをご覧ください。

実行結果は以下になります。

Saturn

enumの列挙子をstring型で取り出す方法その3

C#の拡張メソッドで列挙子をstring型で、別の名前に置き換えて取り出すこともできます。拡張メソッドとはstaticなメソッドをインタンスと結び付けて呼び出す方法です。以下のC#サンプルのGetStrが拡張メソッドです。パラメータにthisを付けることで拡張メソッドになります。

実行結果は以下になります。

天王星

enumの列挙子をstring型で取り出す方法その4

Dictionaryクラスを使って変換して取得する方法もあります。以下のC#サンプルをご覧ください。

実行結果は以下になります。

海王星

SE
メソッドの組み合わせで、とてもわかりやすいコードになるんですね。

PM
そうですね。他にも様々な変換方法があります。まずは基本的なコードをマスターしていきましょう。

C#のenumのstring変換には様々な方法がある

C#のenumのstring変換について解説しましたが、ご理解頂けましたでしょうか。enumを使うとプログラムが分かりやすくなり、列挙子から文字列を取得することでよりスマートになります。

取得方法は色々な方法がありますが、ケースバイケースで使い分けて、enumを活用した素晴らしいプログラムを作って下さい。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags