Wie fülle ich eine Dropdown-Liste mit Aufzählungswerten auf?

Ich habe eine Aufzählung für eine der Eigenschaften meines Ansichtsmodells. Ich möchte eine Dropdown-Liste anzeigen, die alle Werte der Aufzählung enthält. Ich kann das mit dem folgenden Code zum Laufen bringen.

Was ich mich frage ist, ob es eine einfache Möglichkeit gibt, von einer Aufzählung in eine IEnumerable zu konvertieren? Ich kann es manuell wie im folgenden Beispiel tun, aber wenn ich einen neuen Aufzählungswert hinzufüge, bricht der Code ab. Ich stelle mir vor, dass ich es durch Reflektion wie folgt machen kannBeispie, aber gibt es noch andere Möglichkeiten?

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);
  }
}

Antworten auf die Frage(10)

Ihre Antwort auf die Frage