enum(列挙型)の値ではなく、項目数そのものを使用したいケースがあります。今回は項目数を取得する方法を紹介します。
System.EnumクラスのGetValuesメソッドを利用すると定数の値を格納する配列が取得できますので、それを利用して項目数として取得しています。
System.Enum.GetValues(typeof(eNumCount.Form1.eUserdata)).Length
以下サンプルコードです。
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 28 29 30 31 32 33 34 35 36 37 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace eNumCount { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private enum eUserdata { name, age, address1=0, address2=0, address3, family } private void button1_Click(object sender, EventArgs e) { int iCount = 0; // 項目数を取得 iCount = System.Enum.GetValues(typeof(eNumCount.Form1.eUserdata)).Length; } } } |
※VB.NETの場合はtypeofではなくGetTypeを使えば同じ結果が得られます。
System.Enum.GetValues(GetType(eNumCount.Form1.eUserdata)).Length