C#にてenumの要素数を取得する方法について質問があります。
以前までenumの最後にCOUNTなどの名前で要素数をカウントする要素を設定して取得していたのですが、途中で数値を指定した場合に対応できないため、System.Enum.GetValues()
を利用して要素数を取得する形に変更しました。
CS
1enum ETest 2{ 3 A, 4 B, 5 C, 6 D = 100, 7 E, 8 9 // 数値が1つずつインクリメントしない場合は対応できない 10 COUNT, 11}
CS
1enum ETest 2{ 3 A, 4 B, 5 C, 6 D = 100, 7 E, 8} 9 10int[] m_tests = new int[ System.Enum.GetValues( typeof( ETest ) ).Length ];
ただSystem.Enum.GetValues()
にて要素数を取得する場合に、一度配列にしてからその長さを測る形になってしまい、処理負荷や一時的なメモリの使用量などに少し不安があります。
もっと簡単にenumの要素数を取得する方法をご存じないでしょうか。
ご教授お願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。