Comment énumérer un Enum en C#
-
Enum.GetNames()
Méthode d’énumération d’unenum
-
Méthode
Enum.GetValues()
pour énumérerenum
enC#
- Plus d’exemples
- Remarques:
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()
.