C# String in Enum konvertieren

Minahil Noor 12 Oktober 2023
  1. C# Konvertierung von string in enum - mit den Methoden Enum.Parse() und Enum.TryParse()
  2. C# Programm zur Konvertierung von string in eine enum mit Ausnahmebehandlung unter Verwendung der Methode Enum.Parse()
  3. C# Programm zur Konvertierung einer string in eine enum unter Verwendung von Enum.TryParse()
  4. C# Programm zur Überprüfung der Existenz von Zeichenkettenwerten mit der Methode Enum.IsDefined()
  5. Schlussfolgerung
C# String in Enum konvertieren

In C# verwenden wir die Methoden Enum.Parse() und Enum.TryParse(), um eine Zeichenkette in eine Aufzählung zu konvertieren. Hier haben wir Beispiele für beide angegeben, aber wir empfehlen Ihnen, die Methode Enum.TryParse() zu verwenden, wenn Sie eine Zeichenkette in eine Aufzählung konvertieren.

C# Konvertierung von string in enum - mit den Methoden Enum.Parse() und Enum.TryParse()

Um eine Zeichenkette in eine enum umzuwandeln, können wir die Methode Enum.Parse() verwenden. Sie müssen sorgfältig System am Anfang Ihrer Datei einfügen, da Enum.Parse() eine statische Methode ist.

Der Aufzählungstyp, der Zeichenkettenwert und ein Indikator (optional) sind die Parameter dieser Methode. Die korrekte Syntax für die Verwendung von Enum.Parse() und Enum.TryParse() ist die folgende:

EnumName VariableName = (EnumName)Enum.Parse(typeof(EnumName), StringValue);
EnumName VariableName = (EnumName)Enum.Parse(typeof(EnumName), StringValue,
                                             indicator);  // indicator can be true or false
// To implement Enum.TryParse()
EnumName VariableName;
Enum.TryParse(StringValue, out VariableName);

Nun werden wir dies in einem C#-Programm implementieren.

C#-Programm zur Konvertierung von string in eine enum unter Verwendung von Enum.Parse()

using System;
class Conversion {
  enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
  static void Main() {
    string stringvalue = "Rose";
    Flowers Flower = (Flowers)Enum.Parse(typeof(Flowers), stringvalue);
    // To check if we have converted successfully
    if (Flower == Flowers.Rose) {
      Console.WriteLine("The Flower is Rose");
    }
  }
}

Ausgabe:

The Flower is Rose

Hier haben wir eine Aufzählung mit dem Namen Flowers, die mehrere Konstanten mit ihren jeweiligen Werten enthält. Wir haben die Methode Enum.Parse() aufgerufen, um den Zeichenkettenwert Rose in eine Aufzählung zu konvertieren. Die Methode typeof(Flowers) gibt den Typ der Aufzählung zurück. Am Ende haben wir geprüft, ob unsere Konvertierung erfolgreich war oder nicht.

Manchmal kann eine Ausnahme auftreten, wenn die Zeichenkette, die wir zu konvertieren versuchen, in der Aufzählung nicht verfügbar ist. Um dies zu vermeiden, werden wir den try-catch Block verwenden.

C# Programm zur Konvertierung von string in eine enum mit Ausnahmebehandlung unter Verwendung der Methode Enum.Parse()

using System;

class Conversion {
  enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
  static void Main() {
    stringvalue = "Jasmine";
    try {
      Flowers Flower = (Flowers)Enum.Parse(typeof(Flowers), stringvalue);
    } catch (Exception ex) {
      Console.WriteLine("Not Possible");
      // Set value to none
      Flower = Flowers.none;
    }
  }
}

Ausgabe:

Not Possible

C# Programm zur Konvertierung einer string in eine enum unter Verwendung von Enum.TryParse()

using System;
enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
class Conversion {
  static void Main() {
    string stringvalue = "Rose";
    // Using Enum.TryParse()
    Flowers Flower;
    if (Enum.TryParse(stringvalue, out Flower)) {
      Console.WriteLine(Flower == Flowers.Rose);
    }
  }
}

Ausgabe:

True

Wir können auch den Wert der Konstante in enum als Parameter in der Methode Enum.TryParse() übergeben. Das folgende Programm implementiert dies:

using System;

enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
class Conversion {
  static void Main() {
    Flowers Flower;

    if (Enum.TryParse("3", out Flower)) {
      Console.WriteLine(Flower);
    }
  }
}

Ausgabe:

Rose

Sie können auch prüfen, ob der zu konvertierende String-Wert in enum definiert ist oder nicht, indem Sie die Methode Enum.IsDefined() verwenden.

C# Programm zur Überprüfung der Existenz von Zeichenkettenwerten mit der Methode Enum.IsDefined()

using System;

enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }

class Conversion {
  static void Main() {
    Console.WriteLine(Enum.IsDefined(typeof(Flowers), "Rose"));
  }
}

Ausgabe:

True

Schlussfolgerung

Enum.Parse() und Enum.TryParse() sind die Methoden, die verwendet werden, um eine Zeichenkette in eine Aufzählung zu konvertieren. Aber es ist die beste Praxis, Enum.TryParse() zu verwenden.

Verwandter Artikel - Csharp String

Verwandter Artikel - Csharp Enum