Как получить значение индекса Enum в C #

В C, enumsперечислимо, равно целому числу. Поэтому мы можем обрабатывать типы данных intкак целочисленные.

Как добиться того же результата с C #?

c#,c,enums,integer,

40

Ответов: 7


58 ">голосов принято

Просто добавьте его int, как показано ниже:

int eValue = (int)enumValue;

Вот еще один пример, показывающий, как настроить их внутренние целочисленные значения:

public enum MyEnum
{
    MyValue1 = 1,
    MyValue2 = 2
}

(int)MyEnum.MyValue2 == 2; // True

Другой способ преобразования Enum-Type в int:

enum E
{
    A = 1,   /* index 0 */
    B = 2,   /* index 1 */
    C = 4,   /* index 2 */
    D = 4    /* index 3, duplicate use of 4 */
}

void Main()
{
    E e = E.C;
    int index = Array.IndexOf(Enum.GetValues(e.GetType()), e);
    // index is 2

    E f = (E)(Enum.GetValues(e.GetType())).GetValue(index);
    // f is  E.C
}

Более сложный, но независимый от значений INT, присвоенных значениям перечисления.


8 ">голосов

По умолчанию базовый тип каждого элемента в перечислении является целым числом.

enum Values
{
   A,
   B,
   C
}

Вы также можете указать настраиваемое значение для каждого элемента:

enum Values
{
   A = 10,
   B = 11,
   C = 12
}
int x = (int)Values.A; // x will be 10;

Примечание. По умолчанию первый счетчик имеет значение 0.


2 ">

Вы можете напрямую его бросить:

enum MyMonth { January = 1, February, March, April, May, June, July, August, September, October, November, December };

public static string MyMonthList(int MonthIndex)
{
  MyMonth MonthName = (MyMonth)MonthIndex;
  return MonthName.ToString();
}

Например:

string MySelectedMonthName=MyMonthList(12);
 //then MySelectedMonthName value will be August.

1

Используйте бросок:

public enum MyEnum : int    {
    A = 0,
    B = 1,
    AB = 2,
}


int val = (int)MyEnum.A;
C #, C, перечислений, целое число,
Похожие вопросы