Mam konstrukcję enum taką:
public enum EnumDisplayStatus
{
None = 1,
Visible = 2,
Hidden = 3,
MarkedForDeletion = 4
}
W mojej bazie danych wyliczenia są przywoływane przez wartość. Moje pytanie brzmi: jak mogę odwrócić reprezentację liczbową wyliczenia z powrotem do nazwy ciągu?
Na przykład biorąc 2
pod uwagę wynik powinien być Visible
.
nameof(EnumDisplayStatus.Visible)
Mam nadzieję, że to komuś pomagaOdpowiedzi:
Możesz przekonwertować
int
plecy na element członkowski wyliczenia za pomocą prostej rzutowania, a następnie wywołaćToString()
:źródło
enum Foo { A = 1, B= 1 }
?Jeśli chcesz uzyskać ciąg
"Visible"
bez uzyskaniaEnumDisplayStatus
instancji, możesz to zrobić:źródło
Spróbuj tego:
źródło
Użyj tego:
źródło
możesz po prostu rzucić
ah .. Kent mnie pobił :)
źródło
DB do C #
C # do DB
źródło
ROZWIĄZANIE:
Ponadto użycie GetName jest lepsze niż jawne rzutowanie Enum .
[Kod testu wydajności]
[Przykładowy wynik]
źródło
Najszybsze rozwiązanie do kompilacji czasu z wykorzystaniem
nameof
wyrażeń .Zwraca literał wyliczenia.
Uwaga:
nameof
.źródło
Potrzebuję tylko:
źródło
"f"
specyfikatora jest dopracowane i może, ale nie musi być tym, czego chce dzwoniący (zależy to od tego, czego chcą): docs.microsoft.com/en-us/dotnet/standard/base-types/…Aby uzyskać wartość ciągu [Nazwa]:
Aby uzyskać wartość wyliczenia:
źródło
użyłem tego kodu podanego poniżej
źródło
Wystarczy rzutować int na typ wyliczenia:
źródło