Wie kann ich den Enum-Wert erhalten, wenn ich den Enum-String oder den Enum-Int-Wert habe? zB: Wenn ich eine Aufzählung wie folgt habe:
public enum TestEnum
{
Value1 = 1,
Value2 = 2,
Value3 = 3
}
und in einer Stringvariablen habe ich den Wert "value1" wie folgt:
string str = "Value1"
oder in einer int Variablen habe ich den Wert 2 wie
int a = 2;
Wie kann ich die Instanz von enum erhalten? Ich möchte eine generische Methode, bei der ich die Aufzählung und meine Eingabezeichenfolge oder den int-Wert angeben kann, um die Aufzählungsinstanz abzurufen.
Antworten:
Nein, Sie möchten keine generische Methode. Das ist viel einfacher:
Ich denke es wird auch schneller.
quelle
Es gibt zahlreiche Möglichkeiten, dies zu tun. Wenn Sie jedoch ein einfaches Beispiel wünschen, reicht dies aus. Es muss nur mit der erforderlichen defensiven Codierung erweitert werden, um die Typensicherheit und ungültige Analyse usw. zu überprüfen.
quelle
Könnte viel einfacher sein, wenn Sie
TryParse
oderParse
undToObject
Methoden verwenden.Wie von @chrfin in den Kommentaren erwähnt, können Sie es sehr einfach zu einer Erweiterungsmethode machen, indem Sie
this
vor dem Parametertyp hinzufügen, was praktisch sein kann.quelle
this
zum Parameter hinzu und machen SieEnumHelper
statisch, und Sie können sie auch als Erweiterungen verwenden (siehe meine Antwort, aber Sie haben einen besseren / vollständigen Code für den Rest) ...Ich denke, Sie haben die generische Typdefinition vergessen:
und Sie können es verbessern, um am bequemsten zu sein, wie z.
dann können Sie tun:
quelle
Versuchen Sie so etwas
So können Sie tun
quelle
Aus der SQL-Datenbank erhalten Sie eine Aufzählung wie:
quelle
Probieren Sie es einfach aus
Es ist ein anderer Weg
quelle
Es folgt die Methode in C #, um den Aufzählungswert per Zeichenfolge abzurufen
Es folgt die Methode in C #, um den Aufzählungswert von int zu erhalten.
Wenn ich eine Aufzählung wie folgt habe:
dann kann ich die oben genannten Methoden als verwenden
Hoffe das wird helfen.
quelle
Hier ist ein Beispiel, um einen String / Wert zu erhalten
quelle
Sie können dazu die folgende Methode verwenden:
Hinweis: Diese Methode ist nur ein Beispiel und kann verbessert werden.
quelle