C# Converti la stringa in Enum

Minahil Noor 12 ottobre 2023
  1. Conversione da C# da stringa a enum - Utilizzo dei metodi Enum.Parse() e Enum.TryParse()
  2. Programma C# per convertire una stringa in una enum con la gestione delle eccezioni usando il metodo Enum.Parse()
  3. Programma C# per convertire una stringa in una enum usando Enum.TryParse()
  4. Programma C# per verificare l’esistenza di valori di stringa utilizzando il metodo Enum.IsDefined()
  5. Conclusione
C# Converti la stringa in Enum

In C# usiamo i metodi Enum.Parse() e Enum.TryParse() per convertire una stringa in un’enumerazione. Qui abbiamo fornito esempi per entrambi, ma ti consigliamo di usare il metodo Enum.TryParse() quando converti una stringa in un’enumerazione.

Conversione da C# da stringa a enum - Utilizzo dei metodi Enum.Parse() e Enum.TryParse()

Per convertire una stringa in un enum, possiamo usare il metodo Enum.Parse(). Dovrai includere attentamente System all’inizio del tuo file poiché Enum.Parse() è un metodo statico.

Il tipo di enum, il valore della stringa e un indicatore (opzionale) sono i parametri di questo metodo. La sintassi corretta per utilizzare Enum.Parse() e Enum.TryParse() è la seguente:

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);

Ora lo implementeremo in un programma c#.

Programma C# per convertire una stringa in un enum usando 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");
    }
  }
}

Produzione:

The Flower is Rose

Qui abbiamo un’enumerazione denominata Flowers contenente più costanti con i rispettivi valori. Abbiamo chiamato il metodo Enum.Parse() per convertire il valore della stringa Rose in un enum. Il typeof(Flowers) restituirà il tipo enum. Alla fine, abbiamo verificato se la nostra conversione è andata a buon fine o meno.

A volte, può verificarsi un’eccezione se la stringa che stiamo cercando di convertire non è disponibile nell’enum. Per evitare questo useremo il blocco try-catch.

Programma C# per convertire una stringa in una enum con la gestione delle eccezioni usando il metodo 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;
    }
  }
}

Produzione:

Not Possible

Programma C# per convertire una stringa in una enum usando 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);
    }
  }
}

Produzione:

True

Possiamo anche passare il valore della costante in enum come parametro nel metodo Enum.TryParse(). Il seguente programma implementa questo:

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);
    }
  }
}

Produzione:

Rose

Puoi anche controllare se il valore della stringa che vuoi convertire è definito in enum o non usando il metodo Enum.IsDefined().

Programma C# per verificare l’esistenza di valori di stringa utilizzando il metodo 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"));
  }
}

Produzione:

True

Conclusione

Enum.Parse() e Enum.TryParse() sono i metodi usati per convertire una stringa in un’enumerazione. Ma è consigliabile utilizzare Enum.TryParse().

Articolo correlato - Csharp String

Articolo correlato - Csharp Enum