web-dev-qa-db-fra.com

Comment obtenir la valeur Enum Index en C #

En C, enums, équivaut en interne à un entier. Par conséquent, nous pouvons également traiter les types de données de enum comme un entier.

Comment réaliser la même chose avec C #?

45
Shamim Hafiz

Il suffit de le lancer dans un int, comme ci-dessous:

int eValue = (int)enumValue;

Voici un autre exemple qui vous montre comment configurer leurs valeurs entières internes:

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

(int)MyEnum.MyValue2 == 2; // True
78
Iain Ward

Une autre façon de convertir un Enum-Type en un 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
}

Plus complexe mais indépendant des valeurs INT affectées aux valeurs enum.

33
user1027167

Par défaut, le type sous-jacent de chaque élément de l'énumération est un entier.

enum Values
{
   A,
   B,
   C
}

Vous pouvez également spécifier une valeur personnalisée pour chaque élément:

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

Remarque: Par défaut, le premier énumérateur a la valeur 0.

10
Homam

Vous pouvez le lancer directement:

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();
}

Par exemple:

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

Utilisez un casting simple:

int value = (int) enum.item;

Reportez-vous à enum (référence C #)

2
Akram Shahda

Utilisez un casting:

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


int val = (int)MyEnum.A;
1
thumbmunkeys
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);
    }
}
1
Aravind