title: OrderBy on Enum.GetValues()
body: <p>I'm populating a <code>DropDownList</code> in MVC 4 from an <code>enum</code> and I want to order the enum values from largest to smallest. However, there doesn't seem to be a direct way of approaching this. Currently, I'm using this code to add to a dictionary with the key being the ID and the value being the display text:</p>
  
  <pre><code>var priorities = Enum.GetValues(typeof(Models.Priority)).OfType&lt;Models.Priority&gt;().ToList();
  
  for (int i = priorities.Count - 1; i &gt;= 0; i--)
  {
      Models.Priority priority = priorities[i];
      prioritiesDictionary.Add((int)priority, "Priority " + ((int)priority).ToString());
  }
  </code></pre>
  
  <p>I don't believe that putting enum values into a list and looping backwards is the most efficient method. There are only four values in the enum, but is there a better way to perform an <code>OrderBy</code> operation on what is returned from <code>Enum.GetValues</code>? I know it might be minimal performance impact doing it the way I am, but I want to know for larger enums.</p>