10
How to convert type variables int
and string
for a enum
?
10
How to convert type variables int
and string
for a enum
?
15
Convert int to enum
var meuInteiro = 0;
MinhaEnum foo = (MinhaEnum)meuInteiro;
// foo == MinhaEnum.Primeiro
Convert string to Enum
var minhaString = "Segundo";
MinhaEnum foo = (MinhaEnum)Enum.Parse(typeof(MinhaEnum), minhaString);
// foo == MinhaEnum.Segundo
Example with invalid conversion using string
, as quoted by @Maniero
var minhaString = "Terceiro";
MinhaEnum foo = (MinhaEnum)Enum.Parse(typeof(MinhaEnum), minhaString);
// Será disparada uma exceção
// Additional information: Valor 'Terceiro' solicitado não foi encontrado.
To avoid an exception (when it is not certain that the value of the string corresponds to an Enum value), we can use the method Enum.Tryparse
var minhaString = "Segundo";
MinhaEnum foo;
// Se o valor da string corresponder ao Enum, enumValida será True
// e o valor será atribuido a varíavel foo
var enumValida = Enum.TryParse<MinhaEnum>(minhaString, out foo);
if (enumValida)
Console.WriteLine(foo);// foo == MinhaEnum.Segundo
else
Console.WriteLine("A string informada não corresponde ao enumerador.");
// Caso o valor da string não corresponda à Enum, foo terá o valor padrão da Enum
// nesse caso, foo == MinhaEnum.Primeiro
Enumerator example
public enum MinhaEnum
{
Primeiro = 0,
Segundo = 1
}
Question already answered on Soen
Browser other questions tagged c# type-conversion enums
You are not signed in. Login or sign up in order to post.
Assuming that the string, has a valid value.
– Maniero
I just wanted to make a contribution instead of using
var
use the type of each data this will bring clarity in the code and pattern. The use ofvar
this way for inexperienced users or/and beginners can bring confusion. Only a constructive tip.– user46523