列挙型の値と名称を全て取得したい場合、以下のように配列として取得することができる。

private enum TEST
{
テスト1 = 1,
テスト3 = 3,
テスト5 = 5,
テスト4 = 4,
テスト2 = 2,
}
private void Form1_Load(object sender, EventArgs e)
{
//TEST列挙型の定数の値とその名称を出力

//forでまわしてtextBox1に出力
TEST[] tests = (TEST[])Enum.GetValues(typeof(TEST));
for (int i = 0; i < tests.Length; i++) { this.textBox1.Text += (int)tests[i] + ":" + tests[i].ToString() + Environment.NewLine; } //foreachでまわしてtextBox2に出力 foreach (TEST test in Enum.GetValues(typeof(TEST))) { this.textBox2.Text += (int)test + ":" + test.ToString() + Environment.NewLine; } //textBox1の出力結果 //1:テスト1 //2:テスト2 //3:テスト3 //4:テスト4 //5:テスト5 //textBox2の出力結果 //1:テスト1 //2:テスト2 //3:テスト3 //4:テスト4 //5:テスト5 } [/csharp] forでまわすパターンとforeachでまわすパターンを検証してみたけど、どうやら配列で取得する際に定数の値順で取得してるっぽいなぁ。 定義した順に取得してくれてれば、ちょっとうれしかったんだけどなー。

コメントを残す

メールアドレスが公開されることはありません。