0Pricing
C# Academy · Lezione

Iterazione sui valori degli enum

Enumera tutti i membri con Enum.GetValues.

Iterazione sui valori degli enum è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 4 lezioni in totale.

Elencare i membri di un enum

A volte è necessario ottenere ogni valore di un enum, ad esempio per creare un menu. Enum.GetValues li fornisce.

using System;

enum Day { Mon, Tue, Wed }
class Program {
    static void Main() {
        foreach (Day d in Enum.GetValues<Day>())
            Console.WriteLine(d);
    }
}

GetValues generico

Il metodo generico Enum.GetValues<T>() restituisce un array fortemente tipizzato che è possibile scorrere direttamente.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Main() {
        Color[] all = Enum.GetValues<Color>();
        Console.WriteLine(all.Length);
    }
}

Ottenere i nomi dei membri

Enum.GetNames<T>() restituisce i nomi dei membri come stringhe.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Main() {
        foreach (string name in Enum.GetNames<Color>())
            Console.WriteLine(name);
    }
}

Nomi e valori insieme

Scorra i valori e li converta in int per stampare sia il nome sia il numero sottostante.

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);
    }
}

Contare i membri

La lunghezza dell'array dei valori indica quanti membri contiene l'enumerazione.

using System;

enum Suit { Hearts, Diamonds, Clubs, Spades }
class Program {
    static void Main() {
        int count = Enum.GetValues<Suit>().Length;
        Console.WriteLine(count);
    }
}

Creare un menu

Scorrere i valori è ideale per stampare un elenco numerato di opzioni.

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);
    }
}

Filtrare durante l'iterazione

È possibile saltare alcuni membri, ad esempio un valore sentinella None, durante l'iterazione.

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);
    }
}

Iterare con LINQ

Combini Enum.GetValues con LINQ per filtrare o trasformare i valori.

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);
    }
}

La forma non generica precedente

Prima dei generics si usava Enum.GetValues(typeof(T)), che restituisce un array non tipizzato.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Main() {
        foreach (Color c in Enum.GetValues(typeof(Color)))
            Console.WriteLine(c);
    }
}

Flag e iterazione

Per le enumerazioni di flag, l'iterazione elenca ogni flag singolarmente; vengono visualizzati anche i membri combinati di praticità, quindi li filtri se necessario.

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);
    }
}

Perché iterare sulle enumerazioni

L'iterazione mantiene l'interfaccia utente e la convalida sincronizzate con l'enumerazione: aggiunga un membro e i cicli lo includeranno automaticamente.

using System;

enum Size { Small, Medium, Large }
class Program {
    static void Main() {
        foreach (Size s in Enum.GetValues<Size>())
            Console.WriteLine("Available: " + s);
    }
}

Verifica rapida

Verifichi la Sua comprensione dell'iterazione delle enumerazioni.

Riepilogo

Enum.GetValues<T>() restituisce ogni membro in un array tipizzato, mentre Enum.GetNames<T>() restituisce i relativi nomi. È possibile scorrere i valori per stampare i nomi insieme ai valori numerici, contare i membri, creare menu o filtrare con LINQ.

L'iterazione mantiene automaticamente menu e convalida sincronizzati man mano che l'enumerazione cresce.

Domande Frequenti

La lezione «Iterazione sui valori degli enum» è gratuita?

Sì — il testo completo di «Iterazione sui valori degli enum» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 4 lezioni in totale.

Cosa imparerò in «Iterazione sui valori degli enum»?

Enumera tutti i membri con Enum.GetValues. Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C# Academy?

Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Iterazione sui valori degli enum»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C# Academy?

Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Definizione e utilizzo degli enum
  2. Enum Flags e combinazioni bitwise
  3. Conversione e analisi degli enum
  4. Iterazione sui valori degli enum
← Torna a C# Academy