Kann ich ein Enum haben, das als Schlüsselwertpaar fungiert?
%Vor% Wenn ich Infringement
wähle, sollte ich "INF0001" bekommen und wenn ich OFN
wähle, sollte ich "INF0002"
Ist es möglich?
Sie können Dekoratoren verwenden, um eine String-Darstellung mit Ihren Enum-Werten zu verknüpfen. Überprüfen Sie diese Frage: Enum ToString mit benutzerfreundlichen Zeichenfolgen
Es wird wie folgt aussehen:
%Vor%Sieht eleganter aus als das Dictionary und benötigt weniger Pflege.
Aktualisierung:
Danke an Oliver für den Hinweis System.Component.DescriptionAttribute . Hier ist, wie es geht:
Sie haben eine Reihe von Möglichkeiten:
Ein Wörterbuch als vc74 vorgeschlagen. Dies ist effizient und entkoppelt Ihre Enum von der Eigenschaft.
Eine switch-Anweisung
Wenn Sie nur eine ganze Zahl zuordnen möchten, können Sie Folgendes verwenden:
%Vor% und dann (int)myEnum
in String.Format
, um es in eine Zeichenkette der gewünschten Form umzuwandeln.
Ein Attribut
%Vor%Um die Leistung zu verbessern, können Sie die Reflektion einmal verwenden, um das Wörterbuch zu füllen.