C# Converter String em Enum
-
C#
string
aenum
Conversão - UtilizandoEnum.Parse()
eEnum.TryParse()
Métodos -
C# Programa para converter
string
em umenum
com tratamento de exceções utilizandoEnum.Parse()
Método -
C# Programa para converter
string
em umenum
UtilizandoEnum.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#