Enumérer les éléments d'une énumération

Signaler
Messages postés
88
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2005
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Comment enuméré tout les éléments d'une énumération.

Par exemple on a:
public enum Test
{
Haut,
Bas,
Droite,
Gauche,
}

Et on veut qu'on affiche
Haut
Bas
Droite
Gauche

J'ai essayé avec un foreach mais je n'y ai pas réussi.

6 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
avec "Reflection"

using System.Reflection;


string liste = "";
Type type = typeof(Test);
FieldInfo[] infos = type.GetFields(BindingFlags.Public|BindingFlags.Static);
foreach ( FieldInfo info in infos )
{
liste += info.Name +"\n";
}
MessageBox.Show(liste);


Cocoricoooooooo !!!!
Messages postés
88
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2005

Merci beaucoup pour la réponse.

Qu'est ce que reflection ?
et (BindingFlags.Public|BindingFlags.Static);
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
sur ce coup là notre amie msdn en sais plus que moi :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemReflection.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemreflectionbindingflagsclasstopic.asp

BindingFlags.Public|BindingFlags.Static permet de ne pas voir apparaitre le "value__"

sinon l'idée m'est venue en me souvenant d'un article que j'avais vu il y a qq temps
je vais essayer de retrouver l'adresse

Cocoricoooooooo !!!!
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Messages postés
88
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2005

J'ai trouvé plus simple sans reflection

Type a = typeof(Test);
foreach(String s in Enum.GetNames(a)
   Console.WriteLine(s);
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
oui c'est vrai c'est plus court ^^

Cocoricoooooooo !!!!