enum Orientation
{
None = -1,
North = 0,
East = 1,
South = 2,
West = 3
}
comment itérer cette ENUM donne toutes les valeurs de zéro à l'ouestcomment itérer cette ENUM donne toutes les valeurs de zéro à l'ouest
enum Orientation
{
None = -1,
North = 0,
East = 1,
South = 2,
West = 3
}
comment itérer cette ENUM donne toutes les valeurs de zéro à l'ouestcomment itérer cette ENUM donne toutes les valeurs de zéro à l'ouest
Utilisation Enum.GetValues
:
Orientation[] orientations = (Orientation[]) Enum.GetValues(typeof(Orientation));
Notez que 0 est un plus valeur conventionnelle pour None
, car elle sera la valeur par défaut pour tous les champs d'instance/statiques de type Orientation
, ainsi que les valeurs initiales dans les tableaux, etc.
EDIT : Enum.GetValues
est documenté pour renvoyer les valeurs "triées par les valeurs binaires des constantes d'énumération" - et je crois qu'il les traite comme des valeurs non signées.
Il y a une réponse simple à cela, heureusement:
Orientation[] orientations = (Orientation[]) Enum.GetValues(typeof(Orientation));
Array.Sort(orientations);
merci :) Jon ya votre suggestion a raison de intialize ENUM valeur par défaut par ce zero.But est une exigence dans mon prob project.my est Enum.GetValues (typeof (enumName)) renvoie un tableau dans lequel North est à zéro position, East est à 1st south est à 2nd et west à 3rd et none is last.but je veux None ayant la valeur -1 être à la position zéro. –
@kk_guarav: C'est en fait * car * vous avez None comme -1 au lieu de 0 :) 'Enum.GetValues' renvoie les valeurs dans * l'ordre binaire * - et il semble que ce soient les valeurs comme si elles étaient non signées. Éditera ma réponse. –
merci Jon Array.Sort (orientations) cela fonctionne correctement :) –