Comment énumérer un Enum en C#

Payel Ganguly 12 octobre 2023
  1. Enum.GetNames() Méthode d’énumération d’un enum
  2. Méthode Enum.GetValues() pour énumérer enum en C#
  3. Plus d’exemples
  4. Remarques:
Comment énumérer un Enum en C#

Ce tutoriel présente la façon d’énumérer un type de enum en C# et le démontre à travers une liste d’exemples de code.

Dans le tutoriel précédent, nous avons appris comment récupérer la valeur int d’un enum en C#. Comme mentionné dans le dernier tutoriel, Enumeration ou enum est un type de valeur défini par l’utilisateur qui définit un ensemble de constantes nommées du type d’entier sous-jacent.

Nous savons que la syntaxe courante de enum est la suivante:

enum<enum_name> { enumeration_list }
;

enum_name spécifie le nom du type d’énumération, et enumeration_list spécifie une liste d’identifiants séparés par des virgules.

Ensuite, nous allons voir comment boucler ou énumérer toutes les valeurs enum en C#. Il y a plusieurs façons d’énumérer un enum. Les exemples suivants illustreront ces façons de faire.

Enum.GetNames() Méthode d’énumération d’un enum

Le but est d’obtenir un tableau de noms des constantes de la enumeration list en utilisant la méthode Enum.GetName(). Elle imprime le tableau de noms en utilisant la boucle foreach.

using System;

public class Example1 {
  public enum Fruits { Apple, Banana, Orange, Watermelon, Mango, Strawberry }

  public static void Main() {
    foreach (string fruit in Enum.GetNames(typeof(Fruits))) {
      Console.WriteLine(fruit);
    }
  }
}

Production:

Apple Banana Orange Watermelon Mango Strawberry

Méthode Enum.GetValues() pour énumérer enum en C#

Une autre approche consiste à utiliser la méthode Enum.GetValues() qui récupère un tableau des valeurs des constantes dans la enumeration list. Elle imprime également chaque valeur en utilisant la boucle foreach.

using System;

public class Example2 {
  public enum Subjects { Maths, Biology, English, Chemistry, Physics, History }

  public static void Main() {
    foreach (Subjects sub in Enum.GetValues(typeof(Subjects))) {
      Console.WriteLine(sub);
    }
  }
}

Production:

Maths Biology English Chemistry Physics History

Discutons de quelques exemples supplémentaires pour obtenir une image complète de l’utilisation de la méthode Enum.GetValues().

Plus d’exemples

Exemple 1:

using System;

public class Demo1 {
  enum Colors { White, Black, Red, Green, Blue }
  ;
  enum Planets { Earth = 0, Jupiter = 10, Saturn = 20, Mars = 30, Venus = 40 }
  ;

  public static void Main() {
    Console.WriteLine("The list of Colors Enum are:");
    foreach (int i in Enum.GetValues(typeof(Colors))) Console.WriteLine(i);

    Console.WriteLine();

    Console.WriteLine("The list of Planets Enum are:");
    foreach (int i in Enum.GetValues(typeof(Planets))) Console.WriteLine(i);
  }
}

Production:

The list of Colors Enum are : 0 1 2 3 4

    The list of Planets Enum are : 0 10 20 30 40

Dans la première partie de l’exemple ci-dessus, les éléments du tableau sont triés par les valeurs binaires (c’est-à-dire les valeurs non signées) des constantes énumération.

Exemple 2:

using System;

enum SignValue { NegativeVal = -1, ZeroVal = 0, PositiveVal = 1 }
;

public class MainValue {
  public static void Main() {
    foreach (var val in Enum.GetValues(typeof(SignValue))) {
      Console.WriteLine("{0,3} 0X{0:X8} {1}", (int)val, ((SignValue)val));
    }
  }
}

Production:

0 ZeroVal 0X00000000 1 PositiveVal 0X00000001 - 1 NegativeVal 0XFFFFFFFF

L’exemple ci-dessus montre des informations sur le tableau retourné par la méthode Enum.GetValues() pour la enumeration list qui comprend des valeurs nulles, négatives et positives.

Remarques:

La méthode Enum.GetValues() retourne un tableau qui contient une valeur pour chaque élément de la liste enum. Si plusieurs éléments ont la même valeur, le tableau généré comprend des valeurs dupliquées. Dans ce cas, appeler la méthode Enum.GetNames() avec chaque valeur dans le tableau retourné ne restaure pas les noms uniques attribués aux éléments qui ont des valeurs dupliquées. Pour récupérer tous les noms des membres de l’énumération avec succès, nous recommandons d’appeler la méthode Enum.GetNames().

Article connexe - Csharp Enum