Cómo recorrer los valores de Enum en C #

Recorrer una lista de enumeración o enumerar en C # es una habilidad esencial. Esta receta técnica proporciona un ejemplo detallado y explica una explicación del proceso de bucle.

El tipo de datos de enumeración (o enumeración) se utiliza para asignar constantes simbólicas con valores únicos. los enumerar la palabra clave se usa en C # para declarar una enumeración.

Primero, se deberá declarar una enumeración usando la siguiente sintaxis:

enum identifier {enumerator-list}

Usando esta sintaxis podemos construir nuestro ejemplo.

enum SemanalDias {Domingo, lunes, martes, miércoles, jueves, viernes, sábado};

En el ejemplo anterior, a la primera constante simbólica 'Sun' se le asignará un valor 0. 'Mon' será igual a 1. Este patrón continuará hasta que 'Sat' sea igual al valor de 6. Ahora, sin hacer un bucle, se imprimen todos los elementos de la lista de enumeración y sus respectivos valores podrían requerir hasta siete líneas de código. Uno para cada día de la semana.

int val1 = (int) WeekDays.Sun;
int val2 = (int) WeekDays.Mon;

int val7 = (int) WeekDays.Sat;

Obviamente, esta es una solución incómoda si la lista de enumeración es enorme. Es mucho más fácil recorrer la lista de enumeración para imprimir las constantes simbólicas y los valores asociados.

los Enum.Getnames y Enum.GetValues Los métodos se utilizan para recuperar la constante simbólica y los valores asociados con ella. La sintaxis básica de estos métodos es la siguiente:

los valores de var = Enum.GetValues ​​(typeof (MyEnum));

Aquí está mi ejemplo de trabajo que demuestra estos métodos en acción.


programa de clase
{
enum SemanalDias {Domingo, lunes, martes, miércoles, jueves, viernes, sábado};
estático vacío principal (cadena [] args)
{
string [] days = Enum.GetNames (typeof (WeekDays));
foreach (cadena s en días)
{
Console.WriteLine (s);
}
Console.ReadLine ();
}
}
Salida:
Dom
Lun
mar
Mie
Jue
Vie
Sab


programa de clase
{
enum SemanalDias {Domingo, lunes, martes, miércoles, jueves, viernes, sábado};
estático vacío principal (cadena [] args)
{
foreach (día de WeekDays en Enum.GetValues ​​(typeof (WeekDays)))
{
int x = (int) día;
Console.WriteLine ("{0} = {1}", día, x);
}
Console.ReadLine ();
}
}
salida:
Sol = 0
Lun = 1
Mar = 2
Mié = 3
Jue = 4
Fri = 5
Sat = 6


programa de clase
{
enum SemanalDias {Domingo, lunes, martes, miércoles, jueves, viernes, sábado};
estático vacío principal (cadena [] args)
{
foreach (día de WeekDays en Enum.GetValues ​​(typeof (WeekDays)))
{
int x = (int) día;
Console.Write ("{0} \ t", x);
}
Console.ReadLine ();
}
}
Salida
0       1       2       3       4       5       6