Konvertieren Enum in String in C#

Muhammad Maisam Abbas 12 Oktober 2023
  1. Konvertieren von Enum in String mit dem Attribut Description in C#
  2. Konvertieren von Enum in String mit der Anweisung switch in C#
Konvertieren Enum in String in C#

In diesem Tutorial werden die Methoden zum Konvertieren einer Aufzählung in eine Zeichenkette in C# erläutert.

Konvertieren von Enum in String mit dem Attribut Description in C#

Wir müssen nichts verwenden, um es in eine Zeichenkette für einen einfachen Enum-Wert zu konvertieren, der den Namenskonventionen folgt. Sie kann dem Benutzer mit der Funktion Console.WriteLine() in C# angezeigt werden. Dies wird im folgenden Codierungsbeispiel gezeigt.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace enum_to_string {
  public enum Status { InProgress, Completed }
  class Program {
    static void Main(string[] args) {
      Status complete = Status.Completed;
      Console.WriteLine(complete);
    }
  }
}

Ausgabe:

Completed

Im obigen Code haben wir den Enum-Wert Completed direkt im Zeichenkettenformat in C# gedruckt. Dies war möglich, weil unser Enum-Wert den Variablen-Namenskonventionen in C# entsprach. Wenn wir jedoch eine leserfreundliche Zeichenkette anzeigen möchten, müssen wir das Attribut Description von Enums in C# verwenden. Das Attribut Description wird verwendet, um jeden Wert einer Aufzählung zu beschreiben. Wir können unsere Aufzählung in eine leserfreundliche Zeichenkette konvertieren, indem wir die Zeichenkette in das Attribut Description der Aufzählung schreiben. Das folgende Codebeispiel zeigt, wie ein Enum-Wert mit dem Attribut Description in C# in eine Zeichenkette konvertiert wird.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;

namespace enum_to_string {
  public enum Status {
    [Description("The Desired Task is InProgress")] InProgress,
    [Description("The Desired Task is Successfully Completed")] Completed
  }
  static class extensionClass {
    public static string getDescription(this Enum e) {
      Type eType = e.GetType();
      string eName = Enum.GetName(eType, e);
      if (eName != null) {
        FieldInfo fieldInfo = eType.GetField(eName);
        if (fieldInfo != null) {
          DescriptionAttribute descriptionAttribute = Attribute.GetCustomAttribute(
              fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute;
          if (descriptionAttribute != null) {
            return descriptionAttribute.Description;
          }
        }
      }
      return null;
    }
  }
  class Program {
    static void Main(string[] args) {
      Status complete = Status.Completed;
      string description = complete.getDescription();
      Console.WriteLine(description);
    }
  }
}

Ausgabe:

The Desired Task is Successfully Completed

Im obigen Code haben wir die Erweiterungsmethode getDescription erstellt, die die Enum-Wertbeschreibung in C# zurückgibt. Diese Methode funktioniert einwandfrei, ist aber etwas komplex. Diese Komplexität wird im nächsten Abschnitt vereinfacht.

Konvertieren von Enum in String mit der Anweisung switch in C#

Durch die Verwendung der Anweisung switch in C# kann die Komplexität der vorherigen Methode erheblich vereinfacht werden. Mit der Anweisung switch in C# können wir unserer Zeichenkettenvariablen für jeden Enum-Wert den gewünschten Wert zuweisen. Siehe das folgende Codebeispiel.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;

namespace enum_to_string {
  public enum Status { InProgress, Completed }
  static class extensionClass {
    public static string getValue(this Status e) {
      switch (e) {
        case Status.InProgress:
          return "The Desired Task is InProgress";
        case Status.Completed:
          return "The Desired Task is Successfully Completed";
      }
      return String.Empty;
    }
  }
  class Program {
    static void Main(string[] args) {
      Status complete = Status.Completed;
      string value = complete.getValue();
      Console.WriteLine(value);
    }
  }
}

Ausgabe:

The Desired Task is Successfully Completed

Im obigen Code haben wir die Erweiterungsmethode getValue() erstellt, die mithilfe der Anweisung switch in C# eine Zeichenkette zurückgibt, die auf dem Enum-Wert basiert. Die Funktion getValue() verwendet die Anweisung switch und gibt für jeden Wert unserer angegebenen Enum eine andere Zeichenkette zurück.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Csharp Enum

Verwandter Artikel - Csharp String