C# Converter String em Enum
-
C#
stringaenumConversão - UtilizandoEnum.Parse()eEnum.TryParse()Métodos -
C# Programa para converter
stringem umenumcom tratamento de exceções utilizandoEnum.Parse()Método -
C# Programa para converter
stringem umenumUtilizandoEnum.TryParse() -
C# Programa para verificar a existência do valor da string utilizando
Enum.IsDefined()Método - Conclusão:
Em C# utilizamos métodos Enum.Parse() e Enum.TryParse() para converter uma string em um enum. Aqui demos exemplos para ambos, mas recomendamos que você utilize o método Enum.TryParse() ao converter uma string em um enum.
C# string a enum Conversão - Utilizando Enum.Parse() e Enum.TryParse() Métodos
A fim de converter uma string em um enum, podemos utilizar o método Enum.Parse(). Você terá que incluir cuidadosamente System no topo de seu arquivo como Enum.Parse() é um método estático.
O tipo de enum, o valor da string e um indicador (opcional) são os parâmetros deste método. A sintaxe correta para utilizar Enum.Parse() e Enum.TryParse() é a seguinte:
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);
Agora vamos implementar isto em um programa c#.
C# Programa para converter string em um enum Utilizando 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");
}
}
}
Resultado:
The Flower is Rose
Aqui temos um enumero chamado Flowers contendo múltiplas constantes com seus respectivos valores. Chamamos Enum.Parse() método para converter o valor da string Rose em um enumero. O typeof(Flowers) retornará o tipo de enumeração. No final, verificamos se nossa conversão foi bem sucedida ou não.
Algumas vezes, pode ocorrer uma exceção se a string que estamos tentando converter não estiver disponível no enumero. Para evitar isso, utilizaremos o bloco try-catch.
C# Programa para converter string em um enum com tratamento de exceções utilizando Enum.Parse() Método
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;
}
}
}
Resultado:
Not Possible
C# Programa para converter string em um enum Utilizando 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);
}
}
}
Resultado:
True
Também podemos passar o valor de constante em enumeração como parâmetro no método Enum.TryParse(). O programa seguinte implementa isto:
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);
}
}
}
Resultado:
Rose
Você também pode verificar se o valor da string que deseja converter está definido no enum ou não utilizando o método Enum.IsDefined().
C# Programa para verificar a existência do valor da string utilizando Enum.IsDefined() Método
using System;
enum Flowers { None, Daisy = 1, Lili = 2, Rose = 3 }
class Conversion {
static void Main() {
Console.WriteLine(Enum.IsDefined(typeof(Flowers), "Rose"));
}
}
Resultado:
True
Conclusão:
Enum.Parse() e Enum.TryParse() são os métodos que são utilizados para converter uma string em um enum. Mas é a melhor prática utilizar Enum.TryParse().
Artigo relacionado - Csharp String
- C# Converter Int a String
- Use Strings na instrução Switch em C#
- C# Converter String para Data
- Como converter uma string em Booleano em C#
- Como converter uma string em uma array de bytes em C#