0Pricing
C# Academy · Lección

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

  1. Definición y uso de enums
  2. Enums de flags y combinaciones bit a bit
  3. Conversiones y análisis de enums
  4. Iteración de valores de enums
← Volver a C# Academy