2010-10-28 3 views

Répondre

2

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); 
+0

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. –

+0

@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. –

+0

merci Jon Array.Sort (orientations) cela fonctionne correctement :) –

Questions connexes