Testen Sie, ob ein Objekt eine Aufzählung ist


88

Ich würde gerne wissen, ob 'theObject' eine Aufzählung ist (von jedem Aufzählungstyp).

 foreach (var item in Enum.GetValues(theObject.GetType())) {

     //do something
 }

Antworten:


202

Die Frage ist die Antwort. :) :)

bool isEnum = theObject is Enum;

13
Liebe es! Und noch näher an der Frage: if (theObject is Enum) {...}
Peter Lillevold

5
Dies ist nicht einmal das, wofür ich hierher gekommen bin und ich gebe Ihnen einen Punkt. Es ist so ... sauber ... <sniff>, es ist wunderschöner Mann TT
Lukas

12
/ * Test * / if (anObject ist / * an * / Enum) {}
Tom Fobear

bool isEnum = theObject.GetType (). IsEnum; ist besser, ist Enum nicht immer wahr
chris hu

67

Wenn Sie eine haben Type, verwenden Sie die Type.IsEnumEigenschaft, z.

bool isEnum = theObject.GetType().IsEnum;

2
Das hat bei mir funktioniert. Ich konnte nicht herausfinden, wie die akzeptierte Antwort in VB.NET funktioniert.
Shea Daniels

4
Eigentlich musste ich wissen, wie man nach Typeeinem Enum-Typ sucht. +1
Nathan


0

Bei generischen Typparametern kann der Parameter eher eingeschränkt als getestet werden:

where T : Enum
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.