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

C#でenum(列挙型)とint型の変換をする方法
2020年04月14日
プログラムを作成していると、列挙子を数値として扱いたいことや、逆に数値を列挙子に変換したいことがあるかと思います。そこで本記事では、enum(列挙型)とint型の相互変換をする方法を分かりやすく解説しています。ぜひ、参考にしていただければ幸いです。
- PG
- 確かに、enum型とint型の変換ができたらすごく便利ですよね。
- PL
- 変換の方法は簡単なので、この機会にぜひマスターしてくださいね!
【C#の型の説明】
- enum型…定数をまとめて管理することができる型
- int型…整数を扱うことのできる変数の型
目次
enum型からint型への変換
はじめに、enum型からint型への変換方法を見ていきましょう。変換方法は以下のとおりです。
※今回は分かりやすく2段階で処理しています。
1 2 |
var enum変数名 = enumクラス名.変換したいenum定数名; var int変数名 = (int)enum変数名; |
では、サンプルのソースコードで実際の使い方を見ていきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System; namespace EnumIntSample { class Program { static void Main() { // 変換したいenum型の定数をenumValueに代入 var enumValue = Color.Red; // enumValueをint型にキャストしintValueに代入 var intValue = (int)enumValue; // int型に変換した値を表示 Console.WriteLine("int型に変換した値は[" + intValue + "]です。"); Console.ReadLine(); } } // enumクラスを定義 public enum Color { Red = 1, Yellow = 2, Blue = 3 } } |
そして、こちらが実行結果です。
きちんとint型に変換されていますね。
int型からenum型への変換
次に、int型からenum型への変換方法を見ていきましょう。変換方法は以下のとおりです。
※こちらも分かりやすく2段階で処理しています。
1 2 |
var int型変数名 = 数値; var enum変数名 = (enumクラス名)Enum.ToObject(typeof(enumクラス名), int型変数名); |
では、こちらもソースコードで実際の使い方を見ていきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System; namespace IntEnumSample { class Program { static void Main() { var intValue = 3; var enumValue = (Color)Enum.ToObject(typeof(Color), intValue); // int型に変換した値を表示 Console.WriteLine("int型に変換した値は[" + enumValue + "]です。"); Console.ReadLine(); } } // enumクラスを定義 public enum Color { Red = 1, Yellow = 2, Blue = 3 } } |
実行結果はこちらです。
きちんとenum型に変換されてblueが表示されていますね。
- PG
- キャストをするだけで簡単に変換することができるんですね。
- PL
- そうですね。ちなみに文字列などにも変換することができますよ。ぜひ、試してみてください。
int型だけでなくstring型でも相互変換ができる
今回は、enum型とint型の相互変換方法を紹介していきました。この記事で紹介したのはint型ですが、同じ要領でstring型などとも相互変換することができます。変換することでより便利に扱えるので、ぜひ活用してみてはいかがでしょうか。