Feedback

Enum Werte aufzählen

Sprache: C#

Was mich an [b]Array Enum.GetValues(Type enumType)[/b] stört, ist, dass im Aufruf [b]typeof()[/b] geschrieben werden muss, und dass die Elemente von Array vom Typ [b]object[/b] sind. Das Snippet macht aus [code] foreach (MyEnum value in Enum.GetValues(typeof(MyEnum))) { … } [/code] einfach [code] foreach (var value in Enumerate<MyEnum>()) { … } [/code]
static IEnumerable<TEnum> Enumerate<TEnum>()
{
    return Enum.GetValues(typeof(TEnum)).OfType<TEnum>();
}

// oder mit C# 6 expression body
static IEnumerable<TEnum> Enumerate<TEnum>() => Enum.GetValues(typeof(TEnum)).OfType<TEnum>();
static IEnumerable<TEnum> Enumerate<TEnum>()
{
    return Enum.GetValues(typeof(TEnum)).OfType<TEnum>();
}

// oder mit C# 6 expression body
static IEnumerable<TEnum> Enumerate<TEnum>() => Enum.GetValues(typeof(TEnum)).OfType<TEnum>();

1 Kommentar