C# Convertir Cadena a enum
-
C# Conversión de
string
aenum
- Usando los métodosEnum.Parse()
yEnum.TryParse()
-
Programa de C# para convertir
cadena
en unenum
usandoEnum.Parse()
-
C# Programa para convertir
cadena
en unenum
con manejo de excepciones usando el métodoEnum.Parse()
-
Programa C# para convertir la
Cadena
en unenum
usandoEnum.TryParse()
-
C# Programa para comprobar la existencia del valor de la cadena usando el método
Enum.IsDefined()
- Conclusión
En C# usamos los métodos Enum.Parse()
y Enum.TryParse()
para convertir una cadena en un enum. Aquí hemos dado ejemplos para ambos, pero le recomendamos que utilice el método Enum.TryParse()
al convertir una cadena en un enum.
C# Conversión de string
a enum
- Usando los métodos Enum.Parse()
y Enum.TryParse()
Para convertir una cadena en un enum
, podemos usar el método Enum.Parse()
. Tendrás que incluir cuidadosamente System
en la parte superior de tu archivo ya que Enum.Parse()
es un método estático.
El tipo Enum
, el valor de la cadena y un indicador(opcional) son los parámetros de este método. La sintaxis correcta para usar Enum.Parse()
y Enum.TryParse()
es la siguiente:
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);
Ahora vamos a implementar esto en un programa C#.
Programa de C# para convertir cadena
en 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");
}
}
}
Producción :
The Flower is Rose
Aquí tenemos una lista llamada Flower
que contiene múltiples constantes con sus respectivos valores. Hemos llamado al método Enum.Parse()
para convertir el valor de la cadena Rose
en un enum. El typeof(Flowers)
devolverá el tipo de enum. Al final, hemos comprobado si nuestra conversión tuvo éxito o no.
A veces, puede ocurrir una excepción si la cadena que intentamos convertir no está disponible en el enum. Para evitar esto, usaremos el bloque de prueba.
C# Programa para convertir cadena
en un enum
con manejo de excepciones usando el método 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;
}
}
}
Producción :
Not Possible
Programa C# para convertir la Cadena
en un 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);
}
}
}
Producción :
True
También podemos pasar el valor de la constante en enum como parámetro en el método Enum.TryParse()
. El siguiente programa implementa esto:
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);
}
}
}
Producción :
Rose
También podemos comprobar si el valor de la cadena que queremos convertir está definido en enum o no usando el método Enum.IsDefined()
.
C# Programa para comprobar la existencia del valor de la cadena usando el método 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"));
}
}
Producción :
True
Conclusión
Enum.Parse()
y Enum.TryParse()
son los métodos que se usan para convertir una cadena en un enum. Pero la mejor práctica es usar Enum.TryParse()
.
Artículo relacionado - Csharp String
- C# Convertir la Int a Cadena
- Usar cadenas en la instrucción Switch en C#
- Cómo convertir una cadena a booleana en C#
- Cómo convertir una cadena en un array de bytes en C#
- Cómo convertir una cadena para que flotante en C#