Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

int eValue = (int)enumValue;

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

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

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

Ответ 2

Другой способ преобразования 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, присвоенных значениям перечисления.

Ответ 3

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

enum Values
{
   A,
   B,
   C
}

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

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

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

Ответ 4

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

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

public static string GetMyMonthName(int MonthIndex)
{
  MyMonthEnum MonthName = (MyMonthEnum)MonthIndex;
  return MonthName.ToString();
}

Например:

string MySelectedMonthName=GetMyMonthName(8);
 //then MySelectedMonthName value will be August.

Ответ 5

Использовать актерский состав:

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


int val = (int)MyEnum.A;

Ответ 6

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

int value = (int) enum.item;

Обратитесь к enum (ссылка С#)

Ответ 7

using System;
public class EnumTest 
{
    enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

    static void Main() 
    {

        int x = (int)Days.Sun;
        int y = (int)Days.Fri;
        Console.WriteLine("Sun = {0}", x);
        Console.WriteLine("Fri = {0}", y);
    }
}