Gros problême d'énumération [Résolu]

Messages postés
175
Date d'inscription
vendredi 22 décembre 2000
Statut
Membre
Dernière intervention
9 septembre 2010
- - Dernière réponse : krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
- 27 juil. 2009 à 11:24
Bonjour à tous!

Voilà mon problême: J'ai une énumération "famille" et 4 autres énumérations qui définissent des identifiants de chacune des familles. J'aimerai retrouver le numéro de la famille à laquelle un identifiant appartient.

Ex: J'ai un identifiant TC. Il appartient à la famille "P". Il faut donc que je récupère la valeur 2 puisque "P" se trouve être le deuxième élèment dans l'énumération de la famille.
string id = "TC";
int famille = ? //C'est là que je sais pas comment faire...un switch, une boucle de recherche???


public enum famille { L = 1, P, D, H };

public enum Enum_L { LA = 1, LB, LC, LD, LE, LF, LG, EA };
public enum Enum_P { PA = 1, PB, PC, PD, PE, TC, TD, TE, TF };
public enum Enum_D { DA = 1, DB, DC, INJ };
public enum Enum_H { HI = 1, HJ, HK, HL, HM };
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
24
3
Merci
Salut

Tu peux faire comme ça :

string id = "TC";
int valFamille; // ne pas prendre le même nom que pour ton enum...
int i;
string liste = "";
for (i = 0; i < 100 /* pour éviter la boucle infinie */; i++)
{
    if (((Enum_L)i).ToString() id) { liste "L"; break; }
    if (((Enum_P)i).ToString() id) { liste "P"; break; }
    if (((Enum_D)i).ToString() id) { liste "D"; break; }
    if (((Enum_H)i).ToString() id) { liste "H"; break; }
}
if(i < 100)
{
    for (i = 0; i < 100; i++)
    {
        if (((famille)i).ToString() == liste) break;
    }
    if(i < 100)
    {
        valFamille = i;
    }
}


Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 127 internautes nous ont dit merci ce mois-ci

Commenter la réponse de krimog
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
37
0
Merci
Bonjour,

int i = (int)MyEnum.MyValue;


[hr]
-Blog-
-Site Perso-
Commenter la réponse de cs_Bidou