Aufzählen einer Aufzählung in C#
-
Enum.GetNames()
Methode zur Aufzählung vonenum
-
Enum.GetValues()
Methode zur Aufzählung vonenum
inC#
- Weitere Beispiele
- Anmerkungen:
Dieses Tutorial führt in die Aufzählung eines enum
-Typs in C# ein und demonstriert dies anhand einer Liste von Code-Beispielen.
Im vorhergehenden Tutorial haben wir gelernt, wie man mit C# den Wert int
aus enum
abrufen kann. Wie im letzten Tutorial erwähnt, ist Enumeration
oder enum
ein benutzerdefinierter Wertetyp, der eine Menge benannter Konstanten des zugrundeliegenden Ganzzahl-Typs definiert.
Wir kennen die übliche Syntax für enum
wie folgt:
enum<enum_name> { enumeration_list }
;
enum_name
gibt den Namen des Aufzählungstyps an, und enum_list
gibt eine Liste von durch Komma getrennten Bezeichnern an.
Als nächstes werden wir sehen, wie man alle enum
-Werte in C# durchschleifen oder aufzählen kann. Es gibt mehrere Möglichkeiten, eine Aufzählung
aufzuzählen. Die folgenden Beispiele sollen diese Möglichkeiten veranschaulichen.
Enum.GetNames()
Methode zur Aufzählung von enum
Ziel ist es, mit der Methode Enum.GetName()
ein Array von Namen der Konstanten in der Aufzählungsliste
zu erhalten. Das Array der Namen wird mit Hilfe der foreach
-Schleife ausgegeben.
using System;
public class Example1 {
public enum Fruits { Apple, Banana, Orange, Watermelon, Mango, Strawberry }
public static void Main() {
foreach (string fruit in Enum.GetNames(typeof(Fruits))) {
Console.WriteLine(fruit);
}
}
}
Ausgabe:
Apple
Banana
Orange
Watermelon
Mango
Strawberry
Enum.GetValues()
Methode zur Aufzählung von enum
in C#
Ein anderer Ansatz ist die Verwendung der Methode Enum.GetValues()
, die ein Array mit den Werten der Konstanten in der Aufzählungsliste
abruft. Sie gibt auch jeden Wert unter Verwendung der foreach
-Schleife aus.
using System;
public class Example2 {
public enum Subjects { Maths, Biology, English, Chemistry, Physics, History }
public static void Main() {
foreach (Subjects sub in Enum.GetValues(typeof(Subjects))) {
Console.WriteLine(sub);
}
}
}
Ausgabe:
Maths
Biology
English
Chemistry
Physics
History
Lassen Sie uns einige weitere Beispiele besprechen, um ein vollständiges Bild der Verwendung der Enum.GetValues()
Methode zu erhalten.
Weitere Beispiele
Beispiel 1:
using System;
public class Demo1 {
enum Colors { White, Black, Red, Green, Blue }
;
enum Planets { Earth = 0, Jupiter = 10, Saturn = 20, Mars = 30, Venus = 40 }
;
public static void Main() {
Console.WriteLine("The list of Colors Enum are:");
foreach (int i in Enum.GetValues(typeof(Colors))) Console.WriteLine(i);
Console.WriteLine();
Console.WriteLine("The list of Planets Enum are:");
foreach (int i in Enum.GetValues(typeof(Planets))) Console.WriteLine(i);
}
}
Ausgabe:
The list of Colors Enum are:
0
1
2
3
4
The list of Planets Enum are:
0
10
20
30
40
Im ersten Teil des obigen Beispiels werden die Array-Elemente nach den Binärwerten (d.h. den vorzeichenlosen Werten) der Aufzählungs
-Konstanten sortiert.
Beispiel 2:
using System;
enum SignValue { NegativeVal = -1, ZeroVal = 0, PositiveVal = 1 }
;
public class MainValue {
public static void Main() {
foreach (var val in Enum.GetValues(typeof(SignValue))) {
Console.WriteLine("{0,3} 0X{0:X8} {1}", (int)val, ((SignValue)val));
}
}
}
Ausgabe:
0 ZeroVal 0X00000000
1 PositiveVal 0X00000001
-1 NegativeVal 0XFFFFFFFF
Das obige Beispiel zeigt Informationen über das Array, das von der Methode Enum.GetValues()
für die Aufzählungsliste
zurückgegeben wird und null, negative und positive Werte enthält.
Anmerkungen:
Die Methode Enum.GetValues()
gibt ein Array zurück, das einen Wert für jedes Element der enum
enthält. Wenn mehrere Elemente den gleichen Wert haben, enthält das erzeugte Array doppelte Werte. In diesem Fall führt der Aufruf der Methode Enum.GetNames()
mit jedem Wert im zurückgegebenen Array nicht zur Wiederherstellung der eindeutigen Namen, die den Elementen mit doppelten Werten zugewiesen wurden. Um die Namen aller Aufzählungselemente erfolgreich abzurufen, empfehlen wir den Aufruf der Methode Enum.GetNames()
.