Come effettuare il looping dei valori Enum in C #

Passare attraverso un elenco di enumerazione o enum in C # è un'abilità essenziale. Questa ricetta tecnica fornisce un esempio dettagliato e descrive una spiegazione del processo di looping.

Il tipo di dati di enumerazione (o enum) viene utilizzato per assegnare costanti simboliche con valori univoci. Il enum la parola chiave è usata in C # per dichiarare un'enumerazione.

Innanzitutto, sarà necessario dichiarare un enum utilizzando la seguente sintassi:

identificatore enum {elenco-enumeratore}

Usando questa sintassi possiamo costruire il nostro esempio.

enum WeekDays {dom, lun, mar, mer, gio, ven, sab};

Nell'esempio sopra la prima costante simbolica 'Sole' verrà assegnato un valore 0. 'Mon' sarà uguale a 1. Questo modello continuerà fino a che 'Sat' è uguale al valore di 6. Ora, senza loop, stampando tutte le voci dell'elenco enum e i rispettivi valori potrebbero richiedere fino a sette righe di codice. Uno per ogni giorno della settimana.

int val1 = (int) WeekDays.Sun;
int val2 = (int) WeekDays.Mon;

int val7 = (int) WeekDays.Sat;

Ovviamente, questa è una soluzione scomoda se l'elenco di enumerazione è enorme. È molto più semplice scorrere l'elenco di enumerazione per stampare le costanti simboliche e i valori associati.

Il Enum.Getnames e Enum.GetValues i metodi sono usati per recuperare la costante simbolica e i valori ad essa associati. La sintassi di base di questi metodi è la seguente:

var values ​​= Enum.GetValues ​​(typeof (MyEnum));

Ecco il mio esempio di lavoro che dimostra questi metodi in azione.


programma di classe
{
enum WeekDays {dom, lun, mar, mer, gio, ven, sab};
static void Main (string [] args)
{
string [] days = Enum.GetNames (typeof (WeekDays));
foreach (stringa s in giorni)
{
Console.WriteLine (s);
}
Console.ReadLine ();
}
}
Produzione:
Sole
Mon
mar
sposare
gio
Fri
Sat


programma di classe
{
enum WeekDays {dom, lun, mar, mer, gio, ven, sab};
static void Main (string [] args)
{
foreach (WeekDays day in Enum.GetValues ​​(typeof (WeekDays)))
{
int x = (int) giorno;
Console.WriteLine ("{0} = {1}", giorno, x);
}
Console.ReadLine ();
}
}
produzione:
Sole = 0
Lun = 1
Tue = 2
Mer = 3
Gio = 4
Ven = 5
Sat = 6


programma di classe
{
enum WeekDays {dom, lun, mar, mer, gio, ven, sab};
static void Main (string [] args)
{
foreach (WeekDays day in Enum.GetValues ​​(typeof (WeekDays)))
{
int x = (int) giorno;
Console.Write ("{0} \ t", x);
}
Console.ReadLine ();
}
}
Produzione
0       1       2       3       4       5       6