Iteración de valores de enums
Enumere todos los miembros con Enum.GetValues.
Iteración de valores de enums es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 4 lecciones en total.
Listado de miembros de una enumeración
A veces necesita todos los valores de una enumeración, por ejemplo, para crear un menú. Enum.GetValues se los proporciona.
using System;
enum Day { Mon, Tue, Wed }
class Program {
static void Main() {
foreach (Day d in Enum.GetValues<Day>())
Console.WriteLine(d);
}
}GetValues genérico
Enum.GetValues<T>() devuelve una matriz fuertemente tipada que puede recorrer directamente.
using System;
enum Color { Red, Green, Blue }
class Program {
static void Main() {
Color[] all = Enum.GetValues<Color>();
Console.WriteLine(all.Length);
}
}Obtener nombres de miembros
Enum.GetNames<T>() devuelve los nombres de los miembros como cadenas.
using System;
enum Color { Red, Green, Blue }
class Program {
static void Main() {
foreach (string name in Enum.GetNames<Color>())
Console.WriteLine(name);
}
}Nombres y valores juntos
Recorra los valores y conviértalos a int para mostrar tanto el nombre como el número subyacente.
using System;
enum Color { Red = 1, Green = 2, Blue = 4 }
class Program {
static void Main() {
foreach (Color c in Enum.GetValues<Color>())
Console.WriteLine(c + " = " + (int)c);
}
}Contar miembros
La longitud de la matriz de valores indica cuántos miembros tiene la enumeración.
using System;
enum Suit { Hearts, Diamonds, Clubs, Spades }
class Program {
static void Main() {
int count = Enum.GetValues<Suit>().Length;
Console.WriteLine(count);
}
}Crear un menú
Recorrer los valores es perfecto para mostrar una lista numerada de opciones.
using System;
enum Option { Start, Settings, Quit }
class Program {
static void Main() {
int i = 1;
foreach (Option o in Enum.GetValues<Option>())
Console.WriteLine(i++ + ") " + o);
}
}Filtrar durante el recorrido
Puede omitir ciertos miembros, como un marcador None, mientras recorre la enumeración.
using System;
enum State { None, Active, Closed }
class Program {
static void Main() {
foreach (State s in Enum.GetValues<State>())
if (s != State.None)
Console.WriteLine(s);
}
}Recorrer con LINQ
Combine Enum.GetValues con LINQ para filtrar o transformar los valores.
using System;
using System.Linq;
enum Level { Low = 1, Medium = 2, High = 3 }
class Program {
static void Main() {
var highOnes = Enum.GetValues<Level>().Where(l => (int)l >= 2);
foreach (var l in highOnes) Console.WriteLine(l);
}
}Forma no genérica anterior
Antes de los genéricos, se utilizaba Enum.GetValues(typeof(T)), que devuelve una matriz sin tipo.
using System;
enum Color { Red, Green, Blue }
class Program {
static void Main() {
foreach (Color c in Enum.GetValues(typeof(Color)))
Console.WriteLine(c);
}
}Flags y recorrido
En las enumeraciones de flags, el recorrido muestra cada flag individual; también aparecen los miembros combinados de conveniencia, por lo que puede filtrarlos si es necesario.
using System;
[Flags]
enum Perm { Read = 1, Write = 2, Execute = 4 }
class Program {
static void Main() {
foreach (Perm p in Enum.GetValues<Perm>())
Console.WriteLine(p + " = " + (int)p);
}
}Por qué recorrer enumeraciones
Recorrer la enumeración mantiene la interfaz de usuario y la validación sincronizadas: cuando añade un miembro, los bucles lo incluyen automáticamente.
using System;
enum Size { Small, Medium, Large }
class Program {
static void Main() {
foreach (Size s in Enum.GetValues<Size>())
Console.WriteLine("Available: " + s);
}
}Comprobación rápida
Compruebe cuánto ha aprendido sobre el recorrido de enumeraciones.
Resumen
Enum.GetValues<T>() devuelve cada miembro en una matriz tipada, y Enum.GetNames<T>() devuelve sus nombres. Puede recorrerlos para mostrar los nombres con sus valores numéricos, contar miembros, crear menús o filtrar con LINQ.
Recorrer la enumeración mantiene los menús y la validación sincronizados automáticamente a medida que esta crece.
Preguntas frecuentes
¿La lección «Iteración de valores de enums» es gratis?
Sí — el texto completo de «Iteración de valores de enums» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Iteración de valores de enums»?
Enumere todos los miembros con Enum.GetValues. Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar C# Academy?
No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Iteración de valores de enums»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de C# Academy?
Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Definición y uso de enums
- Enums de flags y combinaciones bit a bit
- Conversiones y análisis de enums
- Iteración de valores de enums