Cómo enumerar un Enum en C#
-
Enum.GetNames()
Método para enumerar elenum
-
Enum.GetValues()
Método para enumerarenum
enC#
- Más ejemplos
- Observaciones:
Este tutorial introduce cómo enumerar un tipo de enum
en C# y lo demuestra a través de una lista de ejemplos de código.
En el tutorial anterior, hemos aprendido a recuperar el valor int
de enum
usando C#. Como se mencionó en el último tutorial, Enumeración
o enum
es un tipo de valor definido por el usuario que define un conjunto de constantes nombradas del tipo entero subyacente.
Sabemos que la sintaxis común para enum
es la siguiente:
enum<enum_name> { enumeration_list }
;
enum_name
especifica el nombre del tipo de enumeración, y enumeration_list
especifica una lista de identificadores separados por comas.
A continuación, veremos cómo pasar en bucle o enumerar todos los valores de enum
en C#. Hay varias maneras de enumerar un enum
. Los siguientes ejemplos ilustrarán estas formas.
Enum.GetNames()
Método para enumerar el enum
El objetivo es obtener una serie de nombres de las constantes de la enumeration_list
usando el método Enum.GetName()
. Imprime el array de nombres usando el bucle foreach
.
using System;
public class Example1 {
public enum Fruits { Apple, Banana, Orange, Watermelon, Mango, Strawberry }
public static void Main() {
foreach (string fruit in Enum.GetNames(typeof(Fruits))) {
Console.WriteLine(fruit);
}
}
}
Resultado:
Apple Banana Orange Watermelon Mango Strawberry
Enum.GetValues()
Método para enumerar enum
en C#
Otra aproximación es usar el método Enum.GetValues()
que recupera un conjunto de los valores de las constantes en la enumeration_list
. También imprime cada valor usando el bucle foreach
.
using System;
public class Example2 {
public enum Subjects { Maths, Biology, English, Chemistry, Physics, History }
public static void Main() {
foreach (Subjects sub in Enum.GetValues(typeof(Subjects))) {
Console.WriteLine(sub);
}
}
}
Resultado:
Maths Biology English Chemistry Physics History
Discutamos algunos ejemplos más para obtener una imagen completa del uso del método Enum.GetValues()
.
Más ejemplos
Ejemplo 1:
using System;
public class Demo1 {
enum Colors { White, Black, Red, Green, Blue }
;
enum Planets { Earth = 0, Jupiter = 10, Saturn = 20, Mars = 30, Venus = 40 }
;
public static void Main() {
Console.WriteLine("The list of Colors Enum are:");
foreach (int i in Enum.GetValues(typeof(Colors))) Console.WriteLine(i);
Console.WriteLine();
Console.WriteLine("The list of Planets Enum are:");
foreach (int i in Enum.GetValues(typeof(Planets))) Console.WriteLine(i);
}
}
Resultado:
The list of Colors Enum are : 0 1 2 3 4
The list of Planets Enum are : 0 10 20 30 40
En la primera parte del ejemplo anterior, los elementos del array están ordenados por los valores binarios (es decir, los valores sin signo) de las constantes de enumeration
.
Ejemplo 2:
using System;
enum SignValue { NegativeVal = -1, ZeroVal = 0, PositiveVal = 1 }
;
public class MainValue {
public static void Main() {
foreach (var val in Enum.GetValues(typeof(SignValue))) {
Console.WriteLine("{0,3} 0X{0:X8} {1}", (int)val, ((SignValue)val));
}
}
}
Resultado:
0 ZeroVal 0X00000000 1 PositiveVal 0X00000001 - 1 NegativeVal 0XFFFFFFFF
El ejemplo anterior muestra información sobre el array devuelta por el método Enum.GetValues()
para la enumeration_list
que incluye valores cero, negativos y positivos.
Observaciones:
El método Enum.GetValues()
devuelve un array que contiene un valor para cada elemento del enum
. si varios elementos tienen el mismo valor, el array generada incluye valores duplicados. En este caso, llamar al método Enum.GetNames()
con cada valor del array devuelta no restaura los nombres únicos asignados a los elementos que tienen valores duplicados. Para recuperar con éxito los nombres de todos los miembros de la enumeración, recomendamos llamar al método Enum.GetNames()
.