🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Enumeratori C#

Codegrind Team•Jul 22 2023

Ecco degli esercizi semplici con soluzione per praticare le basi degli enumeratori in C#.

Esercizio 1

Definisci un enum "GiorniSettimana" per rappresentare i giorni della settimana.
enum GiorniSettimana
{
    Lunedì,
    Martedì,
    Mercoledì,
    Giovedì,
    Venerdì,
    Sabato,
    Domenica
}

Esercizio 2

Dichiara una variabile di tipo "GiorniSettimana" e assegnale un valore.
GiorniSettimana giorno = GiorniSettimana.Martedì;
Console.WriteLine("Giorno: " + giorno);

Esercizio 3

Scrivi un metodo che accetti un parametro di tipo "GiorniSettimana" e stampi un messaggio specifico in base al giorno.
void StampaMessaggio(GiorniSettimana giorno)
{
    switch (giorno)
    {
        case GiorniSettimana.Lunedì:
            Console.WriteLine("Buon inizio settimana!");
            break;
        case GiorniSettimana.Venerdì:
            Console.WriteLine("Felice fine settimana!");
            break;
        default:
            Console.WriteLine("Buon giorno!");
            break;
    }
}

// Esempio di chiamata del metodo
StampaMessaggio(GiorniSettimana.Martedì);

Esercizio 4

Aggiungi un membro all'enum "GiorniSettimana" per rappresentare il valore speciale "NessunGiorno".
enum GiorniSettimana
{
    NessunGiorno,
    Lunedì,
    Martedì,
    Mercoledì,
    Giovedì,
    Venerdì,
    Sabato,
    Domenica
}

Esercizio 5

Utilizza il metodo Enum.GetValues per ottenere un array di tutti i giorni della settimana e stampali a schermo.
GiorniSettimana[] giorniArray = (GiorniSettimana[])Enum.GetValues(typeof(GiorniSettimana));

foreach (GiorniSettimana giorno in giorniArray)
{
    Console.WriteLine(giorno);
}

Esercizio 6

Scrivi un metodo che accetti una stringa e verifichi se corrisponde a un valore valido dell'enum "GiorniSettimana".
bool VerificaGiorno(string valore)
{
    return Enum.TryParse<GiorniSettimana>(valore, out _);
}

// Esempio di chiamata del metodo
bool esisteGiorno = VerificaGiorno("Lunedì");
Console.WriteLine("Esiste giorno: " + esisteGiorno);

Esercizio 7

Aggiungi un attributo di descrizione a ciascun membro dell'enum "GiorniSettimana" e stampa le descrizioni dei giorni.
using System.ComponentModel;

enum GiorniSettimana
{
    [Description("Primo giorno della settimana")]
    Lunedì,
    [Description("Secondo giorno della settimana")]
    Martedì,
    // ...
}

// Esempio di utilizzo dell'attributo di descrizione
string descrizioneLunedì = GetEnumDescription(GiorniSettimana.Lunedì);
Console.WriteLine("Descrizione Lunedì: " + descrizioneLunedì);

Esercizio 8

Scrivi un metodo che restituisca una lista di stringhe contenente tutte le descrizioni dei giorni della settimana.
List<string> GetDescrizioniGiorni()
{
    List<string> descrizioni = new List<string>();

    foreach (GiorniSettimana giorno in giorniArray)
    {
        string descrizione = GetEnumDescription(giorno);
        descrizioni.Add(descrizione);
    }

    return descrizioni;
}

// Esempio di utilizzo del metodo
List<string> descrizioniGiorni = GetDescrizioniGiorni();
foreach (string descrizione in descrizioniGiorni)
{
    Console.WriteLine(descrizione);
}

Esercizio 9

Aggiungi un membro all'enum "GiorniSettimana" con un valore numerico specifico e stampa il suo valore sottostante.
enum GiorniSettimana
{
    // ...
    FineSettimana = 6
}

int valoreFineSettimana = (int)GiorniSettimana.FineSettimana;
Console.WriteLine("Valore FineSettimana: " + valoreFineSettimana);

Esercizio 10

Utilizza il metodo Enum.IsDefined per verificare se un valore numerico specifico corrisponde a un membro dell'enum "GiorniSettimana".
bool valoreValido = Enum.IsDefined(typeof(GiorniSettimana), 3);
Console.WriteLine("Valore valido: " + valoreValido);