Umwandlung von Enums in menschlich lesbare Werte in C#

Enums oder Aufzählungen sind eine spezielle “Klasse” in C#, die eine Gruppe von Konstanten repräsentiert. Sie werden häufig verwendet, um Variablentypen zu definieren, die eine vordefinierte Menge von Werten halten können. Bei der Arbeit mit Enums kann es jedoch eine Herausforderung sein, deren kodierte Namen in für Menschen lesbare Zeichenfolgen umzuwandeln. Dieser Beitrag befasst sich mit diesem Problem und bietet eine einfache Lösung.

Die Herausforderung der Enum-Lesbarkeit

Stellen Sie sich vor, Sie haben ein Enum, das wie folgt definiert ist:

public enum SampleEnum
{
    ThisIsValueA,
    ThisIsValueB,
    AnotherValue
}

Wenn Sie dieses Enum verwenden und ThisIsValueA in einer benutzerfreundlichen Weise in Ihrer Anwendung anzeigen möchten, sollte es als “This is Value A” erscheinen. Die Herausforderung besteht darin, diese CamelCase-Namenskonventionen automatisch in klaren, lesbaren Text zu konvertieren.

Die Lösung: Eine einfache Wordify-Methode

Um einen Enum-Wert in eine für Menschen lesbare Zeichenfolge umzuwandeln, können wir eine Methode namens Wordify verwenden. Diese Methode nimmt einen in PascalCase übergebenen String (so wie Enum-Namen typischerweise definiert sind) und trennt die Wörter bei Bedarf durch Leerzeichen.

Hier ist eine schrittweise Aufschlüsselung:

Schritt 1: Implementierung der Wordify-Methode

Sie können die Wordify-Methode in Ihrem Code wie unten gezeigt implementieren:

using System.Text.RegularExpressions;

public static string Wordify(string pascalCaseString)
{            
    Regex regex = new Regex("(?<=[a-z])(?<x>[A-Z])|(?<y>.)(?<x>[A-Z])(?=[a-z])");
    return regex.Replace(pascalCaseString, " ${x}");
}

Erklärung:

  • Regex-Muster: Das Regex-Muster arbeitet, indem es Großbuchstaben findet, die entweder von einem Kleinbuchstaben vorausgegangen oder von einem Kleinbuchstaben gefolgt werden. Es stellt sicher, dass Akronyme (Gruppen von Großbuchstaben) intakt bleiben.
  • Rückgabewert: Die Methode ersetzt diese Übereinstimmungen durch ein Leerzeichen gefolgt von dem übereinstimmenden Großbuchstaben, wodurch sie in separate Wörter getrennt werden.

Schritt 2: Verwendung der Wordify-Methode

Um die Methode in Aktion zu sehen, können Sie den folgenden Code ausführen:

Console.WriteLine(Wordify(SampleEnum.ThisIsValueA.ToString()));

Ausgabe:

Diese Zeile Code gibt aus:

"This Is Value A"

Vorteile der Verwendung von Wordify

  • Einfachheit: Es ist eine unkomplizierte Lösung, die nur minimalen Code erfordert.
  • Vermeidung von Attributen: Diese Methode ist einfacher und weniger redundant als die Definition von Beschreibungsattributen für Enums, die Ihren Code unnötig komplizieren können.
  • Direkter Ansatz: Sie ermöglicht es Ihnen, menschlich lesbare Enum-Namen ohne zusätzlichen Aufwand zu erzielen.

Fazit

Die Umwandlung von Enums in menschlich lesbare Werte in C# muss nicht kompliziert sein. Durch die Implementierung der Wordify-Methode können Sie jede PascalCase-Zeichenfolge einfach in ein benutzerfreundliches Format umwandeln – und das mit nur wenigen Codezeilen, was die Klarheit und Benutzerfreundlichkeit Ihrer Anwendungen verbessert. Versuchen Sie, diese Methode in Ihr nächstes Projekt zu integrieren, um den Prozess zur Anzeige von Enum-Werten für Benutzer zu optimieren.