Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation. En savoir plus.

Les énumérations sont un type de données utile qui vous permet de définir une liste d'options nommées pour une variable. Par exemple, si vous souhaitez stocker chaque jour de la semaine, vous pouvez utiliser une énumération pour représenter les valeurs valides.

Les énumérations facilitent la lecture et l'écriture de votre code en encourageant les noms significatifs et en limitant les valeurs que vous pouvez utiliser. Il est souvent pratique d'utiliser une instruction switch pour gérer les valeurs possibles d'une énumération.

Vous pouvez déclarer et utiliser des énumérations dans de nombreux langages de programmation, y compris C#.

Comment déclarer une énumération en C#

En C #, vous décalquerez généralement les énumérations au niveau de l'espace de noms. Par exemple, dans une application console C#, vous pouvez déclarer vos énumérations en tant que propriétés de classe. Vous pouvez voir un exemple dans ce

instagram viewer
Dépôt GitHub.

classeProgramme
{
énumération Jour de la semaine {
Lundi,
Mardi,
Mercredi,
Jeudi,
Vendredi,
Samedi,
Dimanche
}

statiqueannulerPrincipal(chaîne[] arguments)
{

}
}

Lorsque vous déclarez une énumération, chaque option obtient une valeur entière pour représenter son index. Par défaut, la première valeur de l'énumération a une valeur d'index de 0. Pour changer cela, vous pouvez spécifier votre propre index pour le premier élément lorsque vous déclarez l'énumération :

énumération Jour de la semaine { 
Lundi = 1,
Mardi,
Mercredi,
Jeudi,
Vendredi,
Samedi,
Dimanche
}

Dans ce cas, l'indice du premier élément Lundi commence à 1. L'indice de l'élément suivant Mardi sera 2, et ainsi de suite.

Comment accéder à une valeur Enum en C#

Il existe de nombreuses façons d'accéder aux valeurs stockées dans les énumérations. La valeur renvoyée pour chaque option de l'énumération est l'index. Pour cet exemple, la valeur de Jour de la semaine. Vendredi est 5.

Une façon de récupérer le nom de l'énumération consiste à utiliser le Énumérations. ObtenirNom() fonction. Cela obtient le nom de l'option à l'index 5 :

chaîne vendredi = Enum. ObtenirNom(Type de(jour de la semaine), jour de la semaine. Vendredi);
Console. EcrireLigne("Dieu merci, c'est" + vendredi + "!");
// Sortie = Dieu merci, c'est vendredi !

Vous pouvez également accéder à une valeur à l'aide de son index. Dans ce cas, la valeur à l'index 2 dans l'énumération Weekday (qui est mardi) sera stockée dans la variable :

Mardi en semaine = (Jour de la semaine)2;
Console. EcrireLigne("Aujourd'hui c'est" + mardi);
// Sortie = Aujourd'hui c'est mardi

Lorsque vous passez une énumération comme argument dans Console. WriteLine(), le toString() La méthode pour l'énumération s'exécute automatiquement. Cela signifie qu'au lieu d'imprimer la vraie valeur numérique de l'énumération, qui est 5, il imprimera la valeur de chaîne, Vendredi.

Console. WriteLine (jour de la semaine. Jeudi + " c'est le nouveau " + Jour de la semaine. Vendredi);
// Sortie = jeudi est le nouveau vendredi

Vous pouvez aussi convertir ou analyser le type de données en un entier comme autre moyen de stocker l'index d'une option :

entier lundiIndex = (entier)Jour de la semaine. Lundi;
Console. WriteLine (mondayIndex);
// Sortie = 1

Comment comparer des énumérations en C#

En C#, vous pouvez comparer des énumérations à l'aide des opérateurs de comparaison (==, !=, , <=, >=). Cela comparera la valeur numérique des options.

Jour de la semaine1 = Jour de la semaine. Lundi;
Jour de la semaine2 = Jour de la semaine. Mardi;

si (jour1 == jour2)
{
Console. EcrireLigne("Les jours sont les mêmes.");
}
autre
{
Console. EcrireLigne("Les jours sont différents.");
}

Dans cet exemple, la valeur de Weekday. Lundi est 1, et la valeur de Jour de la semaine. Mardi est 2, donc le 1 == 2 la comparaison échouera.

Une autre façon de comparer les énumérations est la Équivaut à() méthode:

si (jour1.Égal à (jour2))
{
Console. EcrireLigne("Les jours sont les mêmes.");
}
autre
{
Console. EcrireLigne("Les jours sont différents.");
}

Vous pouvez aussi utiliser une instruction switch C# pour comparer une valeur à chaque option dans une énumération. Dans cet exemple, le code tombera dans le cas du mercredi :

Jour de la semaine valueToCompare = Jour de la semaine. Mercredi;

changer (valeurà comparer)
{
cas Jour de la semaine. Lundi:
Console. EcrireLigne("J'ai besoin de café.");
casser;
cas Jour de la semaine. Mardi:
Console. EcrireLigne("J'ai besoin de café.");
casser;
cas Jour de la semaine. Mercredi:
Console. EcrireLigne("J'ai besoin de café.");
casser;
cas Jour de la semaine. Jeudi:
Console. EcrireLigne("Jeudi est le nouveau vendredi !");
casser;
cas Jour de la semaine. Vendredi:
Console. EcrireLigne("Dieu merci c'est vendredi!");
casser;
cas Jour de la semaine. Samedi:
Console. EcrireLigne("Mon jour préféré!");
casser;
cas Jour de la semaine. Dimanche:
Console. EcrireLigne("Mon autre jour préféré !");
casser;
défaut:
Console. EcrireLigne("Jour de la semaine invalide.");
casser;
}

Comment itérer sur des énumérations en C #

Vous pouvez itérer sur les énumérations en C # en utilisant le Enum. ObtenirValeurs() méthode, qui renvoie un tableau de toutes les valeurs de l'énumération. Cet extrait de code imprime chaque jour de la semaine, y compris le lundi, le mardi, etc. :

pour chaque (Jour de semaine dans Enum. ObtenirValeurs(Type de(Jour de la semaine)))
{
Console. EcrireLigne((entier)jour); // Pour imprimer l'index
Console. WriteLine (jour); // Pour imprimer la valeur du texte
}

Vous pouvez également itérer sur les valeurs enum en utilisant le Enum. GetNames() méthode. Il renvoie une liste de valeurs de chaîne pour représenter les noms des options enum :

pour chaque (chaîne nom dans Enum. ObtenirNoms(Type de(Jour de la semaine)))
{
entier indice = (entier)(Jour de la semaine) Enum. Analyser(Type de(jour de la semaine), nom) ;

Console. WriteLine (index); // Pour imprimer l'index
Console. WriteLine (nom); // Pour imprimer la valeur du texte
}

Utilisation des énumérations en C#

Vous pouvez utiliser des énumérations dans votre code pour le rendre plus lisible et moins sujet aux bogues. Les énumérations peuvent également être très utiles lorsqu'elles sont associées à d'autres structures, telles que des dictionnaires.