Manchmal ist es erforderlich in CSharp (C#) die Werte vom Typ enum zu durchlaufen.
Das Durchlaufen von Enumerationen kann in zwei Varianten erfolgend, die sich aber sehr gleichen. Einmal als Enum-Typ und einmal als Integer-Typ.
Wir verwenden an dieser Stelle die foreach-Schleife mit folgendem Enum
als Beispiel:
public enum TimeUnit
{
Seconds,
Minutes,
Hours,
Weeks,
Months,
Years
}
In dieser Variante werden die Enum-Werte durchlaufen und es wird beispielhaft der Wert als String in der Console zurückgegeben.
foreach(TimeUnit e in Enum.GetValues(typeof(TimeUnit)))
{
Console.WriteLine(e.ToString());
}
In dieser Variante werden die Enum-Werte als Integer durchlaufen und es wird beispielhaft der Wert als Integer in der Console zurückgegeben.
Diese Variante kann sinnvoll sein, wenn man direkt mit dem Integer-Wert weiterarbeiten will.
foreach( int i in Enum.GetValues(typeof(TimeUnit)) )
{
Console.WriteLine(i);
}
GetValues() liefert immer die numerischen Werte aus der Enumaration.
Enum.GetNames() gibt die String-Wert der Enumarion zurück.