OrderBy sur Enum.GetValues ​​()

Je suis remplissage d'une DropDownList MVC 4 à partir d'un enum et je veux commander enum valeurs de la plus grande à la plus petite. Cependant, il ne semble pas être un moyen direct de l'approche de ce. Actuellement, je suis en utilisant ce code pour l'ajouter au dictionnaire avec à la clé l'ID et la valeur en cours de l'affichage de texte:

var priorities = Enum.GetValues(typeof(Models.Priority)).OfType<Models.Priority>().ToList();

for (int i = priorities.Count - 1; i >= 0; i--)
{
    Models.Priority priority = priorities[i];
    prioritiesDictionary.Add((int)priority, "Priority " + ((int)priority).ToString());
}

Je ne crois pas que le fait de mettre les valeurs de l'enum dans une liste et d'en boucle vers l'arrière est la méthode la plus efficace. Il y a seulement quatre valeurs de l'enum, mais est-il une meilleure façon d'effectuer une OrderBy opération sur ce qui est retourné à partir de Enum.GetValues? Je sais que ça peut être impact minimal sur les performances de le faire comme je le suis, mais je veux savoir pour les plus grands enums.

source d'informationauteur Cameron Tinker