Comment dois-je remplir une liste déroulante avec les valeurs de l'enum?

J'ai un enum pour l'une des propriétés de mon point de vue-modèle. Je veux afficher une liste déroulante qui contient toutes les valeurs de l'enum. Je peux obtenir que cela fonctionne avec le code suivant.

Ce que je me pose est de savoir si il existe un moyen simple de convertir à partir d'un enum pour un IEnumerable? Je peux le faire manuellement comme dans l'exemple suivant, mais quand j'ajoute une nouvelle valeur d'enum le code des pauses. J'imagine que je peux le faire par la réflexion que par ce exemple, mais il existe d'autres moyens pour ce faire?

public enum Currencies
{
  CAD, USD, EUR
}

public ViewModel
{
  [Required]
  public Currencies SelectedCurrency {get; set;}

  public SelectList Currencies
  {
    List<Currencies> c = new List<Currencies>();
    c.Add(Currencies.CAD);
    c.Add(Currencies.USD);
    c.Add(Currencies.EUR);

    return new SelectList(c);
  }
}

OriginalL'auteur yamspog | 2010-09-14