Hur man går igenom Enum-värden i C #

Looping genom en uppräkningslista eller enum i C # är en viktig färdighet. Detta tech-recept ger ett detaljerat exempel och går genom en förklaring av loopingprocessen.

Uppräkningens datatyp (eller enum) används för att tilldela symboliska konstanter med unika värden. De enum sökord används i C # för att deklarera en uppräkning.

Först måste en enum förklaras med följande syntax:

enum identifierare {enumerator-list}

Med hjälp av denna syntax kan vi bygga vårt exempel.

enum veckodagar {sön, måndag, tisdag, onsdag, fre, lör};

I ovanstående exempel kommer den första symboliska konstanten "Sun" att tilldelas ett värde 0. "Mån" kommer att vara lika med 1. Detta mönster fortsätter tills 'Sat' motsvarar värdet av 6. Nu, utan looping, skriver du ut alla enum-listobjekt och deras respektive värden skulle kunna kräva upp till sju rader av kod. En för varje dag i veckan.

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

int val7 = (int) WeekDays.Sat;

Det är självklart en besvärlig lösning om uppräkningslistan är enorm. Det är mycket lättare att gå igenom uppräkningslistan för att skriva ut de symboliska konstanterna och de associerade värdena.

De Enum.Getnames och Enum.GetValues metoder används för att hämta den symboliska konstanten och värden som är associerade med den. Den grundläggande syntaxen för dessa metoder är följande:

varvärden = Enum.GetValues ​​(typof (MyEnum));

Här är mitt arbetsexempel som demonstrerar dessa metoder i aktion.


klassprogram
{
enum veckodagar {sön, måndag, tisdag, onsdag, fre, lör};
statisk tomrum Huvud (sträng [] args)
{
sträng [] days = Enum.GetNames (typof (WeekDays));
foreach (sträng s i dagar)
{
Console.WriteLine (s);
}
Console.ReadLine ();
}
}
Produktion:
Sol
Mon
tue
ons
Thu
Fri
lör


klassprogram
{
enum veckodagar {sön, måndag, tisdag, onsdag, fre, lör};
statisk tomrum Huvud (sträng [] args)
{
foreach (WeekDays dag i Enum.GetValues ​​(typof (WeekDays)))
{
int x = (int) dag;
Console.WriteLine ("{0} = {1}", dag, x);
}
Console.ReadLine ();
}
}
produktion:
Sun = 0
Mån = 1
Tis = 2
Ons = 3
Thu = 4
Fre = 5
Lör = 6


klassprogram
{
enum veckodagar {sön, måndag, tisdag, onsdag, fre, lör};
statisk tomrum Huvud (sträng [] args)
{
foreach (WeekDays dag i Enum.GetValues ​​(typof (WeekDays)))
{
int x = (int) dag;
Console.Write ("{0} \ t", x);
}
Console.ReadLine ();
}
}
Produktion
0       1       2       3       4       5       6