Konvertieren Enum in String in C#
-
Konvertieren von Enum in String mit dem Attribut
Description
inC#
-
Konvertieren von Enum in String mit der Anweisung
switch
inC#
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.
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.
LinkedInVerwandter Artikel - Csharp Enum
- C# String in Enum konvertieren
- Konvertieren Sie Int in Enum in C#
- Enum Zeichenketten in C#
- Aufzählen einer Aufzählung in C#
- Wie man den Int-Wert von Enum in C# erhält
Verwandter Artikel - Csharp String
- C# Int in String konvertieren
- C# String in Enum konvertieren
- Verwendung von Strings in der Switch-Anweisung in C#
- So konvertieren Sie eine Zeichenkette in ein Byte-Array in C#
- Wie konvertiert man eine Zeichenkette in C# in boolesche Zeichenketten
- Wie schreibt man ein mehrzeiliges String-Literal in C#