Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Aufzählungen sind ein nützlicher Datentyp, mit dem Sie eine Liste benannter Optionen für eine Variable definieren können. Wenn Sie beispielsweise jeden Wochentag speichern möchten, können Sie eine Aufzählung verwenden, um die gültigen Werte darzustellen.

Aufzählungen erleichtern das Lesen und Schreiben Ihres Codes, indem sie aussagekräftige Namen fördern und die verwendbaren Werte einschränken. Es ist oft bequem, eine switch-Anweisung zu verwenden, um die möglichen Werte einer Aufzählung zu handhaben.

Sie können Aufzählungen in vielen Programmiersprachen deklarieren und verwenden, einschließlich C#.

So deklarieren Sie ein Enum in C#

In C# dekalieren Sie Aufzählungen normalerweise auf Namespace-Ebene. Beispielsweise können Sie in einer C#-Konsolenanwendung Ihre Aufzählungen als Klasseneigenschaften deklarieren. Darin können Sie sich ein Beispiel ansehen GitHub-Repository.

KlasseProgramm
{
Aufzählung Wochentag {
Montag,
Dienstag,
Mittwoch,
Donnerstag,
Freitag,
Samstag,
Sonntag
}

statischLeereHauptsächlich(Schnur[] Argumente)
{

}
}

Wenn Sie eine Aufzählung deklarieren, erhält jede Option einen ganzzahligen Wert, um ihren Index darzustellen. Standardmäßig hat der erste Wert in der Aufzählung einen Indexwert von 0. Um dies zu ändern, können Sie bei der Deklaration der Aufzählung einen eigenen Index für das erste Element angeben:

Aufzählung Wochentag { 
Montag = 1,
Dienstag,
Mittwoch,
Donnerstag,
Freitag,
Samstag,
Sonntag
}

In diesem Fall der Index des ersten Elements Montag startet um 1. Der Index des nächsten Elements Dienstag wird sein 2, usw.

So greifen Sie in C# auf einen Enum-Wert zu

Es gibt viele verschiedene Möglichkeiten, wie Sie auf die in Aufzählungen gespeicherten Werte zugreifen können. Der für jede Option in der Aufzählung zurückgegebene Wert ist der Index. Für dieses Beispiel ist der Wert von Wochentag. Freitag Ist 5.

Eine Möglichkeit, den Namen der Aufzählung abzurufen, ist die Verwendung von Aufzählungen. GetName() Funktion. Dadurch wird der Name der Option bei Index 5 abgerufen:

Schnur Freitag = Aufz. GetName(Art der(Wochentag), Wochentag. Freitag);
Konsole. WriteLine(„Gott sei Dank ist es so“ + Freitag + "!");
// Output = Gott sei Dank ist Freitag!

Sie können auch über seinen Index auf einen Wert zugreifen. In diesem Fall wird der Wert bei Index 2 in der Aufzählung Wochentag (d. h. Dienstag) in der Variablen gespeichert:

Wochentag Dienstag = (Wochentag)2;
Konsole. WriteLine("Heute ist " + Dienstag);
// Ausgabe = Heute ist Dienstag

Wenn Sie eine Aufzählung als Argument in übergeben Konsole. WriteLine(), Die toString() Methode für die Aufzählung läuft automatisch ab. Dies bedeutet, dass anstelle des tatsächlichen numerischen Werts der Aufzählung gedruckt wird, dh 5, es wird der String-Wert gedruckt, Freitag.

Konsole. WriteLine (Wochentag. Donnerstag + " ist das neue " + Wochentag. Freitag);
// Ausgabe = Donnerstag ist der neue Freitag

Du kannst auch Konvertieren oder analysieren Sie den Datentyp in eine Ganzzahl als eine andere Möglichkeit, den Index einer Option zu speichern:

int MontagIndex = (int)Wochentag. Montag;
Konsole. WriteLine (MontagIndex);
// Ausgang = 1

So vergleichen Sie Enums in C#

In C# können Sie Aufzählungen mithilfe der Vergleichsoperatoren (==, !=, , <=, >=) vergleichen. Dadurch wird der numerische Wert der Optionen verglichen.

Wochentag tag1 = Wochentag. Montag;
Wochentag tag2 = Wochentag. Dienstag;

Wenn (Tag1 == Tag2)
{
Konsole. WriteLine("Die Tage sind gleich.");
}
anders
{
Konsole. WriteLine("Die Tage sind anders.");
}

In diesem Beispiel der Wert von Weekday. Montag ist 1 und der Wert von Wochentag. Dienstag ist 2, also der 1 == 2 Vergleich wird fehlschlagen.

Eine andere Möglichkeit, Aufzählungen zu vergleichen, ist die Gleich () Methode:

Wenn (Tag1.Gleich (Tag2))
{
Konsole. WriteLine("Die Tage sind gleich.");
}
anders
{
Konsole. WriteLine("Die Tage sind anders.");
}

Du kannst auch Verwenden Sie eine C#-Switch-Anweisung um einen Wert mit jeder Option in einer Aufzählung zu vergleichen. In diesem Beispiel fällt der Code in den Mittwochsfall:

Wochentag valueToCompare = Wochentag. Mittwoch;

schalten (zu vergleichender Wert)
{
Fall Wochentag. Montag:
Konsole. WriteLine("Ich brauche Kaffee.");
brechen;
Fall Wochentag. Dienstag:
Konsole. WriteLine("Ich brauche Kaffee.");
brechen;
Fall Wochentag. Mittwoch:
Konsole. WriteLine("Ich brauche Kaffee.");
brechen;
Fall Wochentag. Donnerstag:
Konsole. WriteLine("Donnerstag ist der neue Freitag!");
brechen;
Fall Wochentag. Freitag:
Konsole. WriteLine("Gott sei Dank ist es Freitag!");
brechen;
Fall Wochentag. Samstag:
Konsole. WriteLine("Mein Lieblingstag!");
brechen;
Fall Wochentag. Sonntag:
Konsole. WriteLine("Mein anderer Lieblingstag!");
brechen;
Standard:
Konsole. WriteLine("Ungültiger Wochentag.");
brechen;
}

So iterieren Sie über Enums in C #

Sie können Enumerationen in C# mit iterieren Aufzählung. GetValues() -Methode, die ein Array aller Werte in der Aufzählung zurückgibt. Dieses Code-Snippet gibt jeden Wochentag aus, einschließlich Montag, Dienstag usw.:

für jede (Wochentag Tag In Aufzählung. Werte holen (Art der(Wochentag)))
{
Konsole. WriteLine((int)Tag); // Um ​​den Index zu drucken
Konsole. WriteLine (Tag); // Um ​​den Textwert zu drucken
}

Sie können Aufzählungswerte auch mit iterieren Aufzählung. GetNames() Methode. Es gibt eine Liste von Zeichenfolgenwerten zurück, um die Namen für die Enum-Optionen darzustellen:

für jede (Schnur Name In Aufzählung. GetNames(Art der(Wochentag)))
{
int index = (int)(Wochentag) Aufz. Analysieren (Art der(Wochentag), Name);

Konsole. WriteLine (Index); // Um ​​den Index zu drucken
Konsole. WriteLine (Name); // Um ​​den Textwert zu drucken
}

Aufzählungen in C# verwenden

Sie können Enums in Ihrem Code verwenden, um ihn lesbarer und weniger anfällig für Fehler zu machen. Enums können auch sehr nützlich sein, wenn sie mit anderen Strukturen wie Wörterbüchern gepaart werden.