Iterieren über Werte einer Aufzählung mit Flags
Frage:
Beim Arbeiten mit einem Wie kann man bei einer Enumeration, die Flags unterstützt, gezielt über die einzelnen Einzelbitwerte iterieren, die in einer bestimmten Variablen festgelegt sind? Ist es möglich, mit Enum.GetValues die Iteration über die gesamte Aufzählung zu vermeiden?
Antwort:
Ja, es ist möglich, über die einzelnen Flag-Werte in einer Aufzählungsvariablen zu iterieren ohne dass die gesamte Aufzählung aufgezählt und überprüft werden muss, ob die Werte festgelegt sind. Dies kann mit dem folgenden Codeausschnitt erreicht werden:
static IEnumerable<Enum> GetFlags(Enum input) { foreach (Enum value in Enum.GetValues(input.GetType())) if (input.HasFlag(value)) yield return value; }
Erklärung:
Mit diesem Ansatz können Sie effizient über die einzelnen Flag-Werte der Aufzählung iterieren variabel.
Das obige ist der detaillierte Inhalt vonWie iteriert man nur über die gesetzten Flags in einer C#-Enumeration?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!