Diese Frage wurde hier bereits beantwortet:
public enum Foos
{
A,
B,
C
}
Gibt es eine Möglichkeit, eine Schleife durch die möglichen Werte von Foos
zu ziehen?
Im Grunde genommen?
foreach(Foo in Foos)
Ja, Sie können die Methode GetValues
verwenden:
var values = Enum.GetValues(typeof(Foos));
Oder die getippte Version:
var values = Enum.GetValues(typeof(Foos)).Cast<Foos>();
Ich habe schon vor langer Zeit eine Hilfsfunktion in meine private Bibliothek aufgenommen, die genau für solche Fälle gedacht ist:
public static class EnumUtil {
public static IEnumerable<T> GetValues<T>() {
return Enum.GetValues(typeof(T)).Cast<T>();
}
}
Verwendung:
var values = EnumUtil.GetValues<Foos>();
foreach(Foos foo in Enum.GetValues(typeof(Foos)))