Ich habe ein Enum-Konstrukt wie dieses:
public enum EnumDisplayStatus
{
None = 1,
Visible = 2,
Hidden = 3,
MarkedForDeletion = 4
}
In meiner Datenbank werden die Aufzählungen nach Wert referenziert. Meine Frage ist, wie ich die Zahlendarstellung der Aufzählung wieder auf den Zeichenfolgennamen zurücksetzen kann.
Zum Beispiel sollte 2
das Ergebnis gegeben sein Visible
.
nameof(EnumDisplayStatus.Visible)
hoffe, es hilft jemandemAntworten:
Sie können die
int
Rückseite mit einer einfachen Besetzung in ein Aufzählungselement konvertieren und dann Folgendes aufrufenToString()
:quelle
enum Foo { A = 1, B= 1 }
?Wenn Sie eine Zeichenfolge
"Visible"
abrufen müssen, ohne eineEnumDisplayStatus
Instanz abzurufen, können Sie Folgendes tun:quelle
Versuche dies:
quelle
Benutze das:
quelle
du kannst es einfach besetzen
ah .. kent hat mich geschlagen :)
quelle
DB zu C #
C # zu DB
quelle
LÖSUNG:
Außerdem ist die Verwendung von GetName besser als das explizite Casting von Enum .
[Code für Leistungsbenchmark]
[Beispielergebnis]
quelle
Die schnellste Lösung zur Kompilierungszeit mit
nameof
Ausdruck .Gibt das Literal der Aufzählung zurück.
Hinweis:
nameof
.quelle
Brauche nur:
quelle
"f"
Bezeichners ist nuanciert und kann oder kann nicht das sein, was der Anrufer will (es hängt davon ab, was er will): docs.microsoft.com/en-us/dotnet/standard/base-types/…So erhalten Sie den String-Wert [Name]:
Und um den Enum-Wert zu erhalten:
quelle
Ich habe diesen Code unten verwendet
quelle
Verwandeln Sie das int einfach in den Aufzählungstyp:
quelle