Ich möchte eine Methode erstellen, die in einem Enum
Typ, und gibt alle enum innerhalb es in einem Array zurück, wie eine solche Funktion zu erstellen?Alle Werte von Enums erhalten
Nehmen Sie zum Beispiel, ich habe zwei Aufzählungen:
public enum Family
{
Brother,
Sister,
Father
}
public enum CarType
{
Volkswagen,
Ferrari,
BMW
}
Wie GetEnumList
eine Funktion zu erstellen, so dass es
{Family.Brother, Family.Sister, Family.Father}
für den ersten Fall zurückgibt.{CarType.Volkswagen, CarType.Ferrari, CarType.BMW}
für den zweiten Fall.
Ich habe versucht:
private static List<T> GetEnumList<T>()
{
var enumList = Enum.GetValues(typeof(T))
.Cast<T>().ToList();
return enumList;
}
Aber ich habe eine InvalidOperationException
:
System.InvalidOperationException : Late bound operations cannot be performed on types or methods for which ContainsGenericParameters is true.
at System.Reflection.RuntimeMethodInfo.ThrowNoInvokeException()
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
Edit: Der obige Code funktioniert fine-- der Grund, warum ich eine Ausnahme bekam, weil Profiler verursacht mir der Fehler. Danke Ihnen allen für Ihre Lösung.
Es funktionierte gut für mich - können Sie den aufrufenden Code buchen? – RobS
Ja, es funktioniert gut-- Ich habe festgestellt, dass mein Profiler mir tatsächlich einen Fehler verursacht und daher zu der Ausnahme führt. – Graviton