Wie man Schleife durch alle enum Werte in C #?

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)
Lösung

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

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 GetValues() {
        return Enum.GetValues(typeof(T)).Cast();
    }
}

Verwendung:

var values = EnumUtil.GetValues();
Kommentare (12)
foreach(Foos foo in Enum.GetValues(typeof(Foos)))
Kommentare (4)

Ja. Verwenden Sie die Methode GetValues() in der Klasse System.Enum.

Kommentare (0)