C# Academy · leksjon

Iterere over enum-verdier

Gå gjennom alle medlemmene med Enum.GetValues.

Leksjon 4 av 413 trinn

Iterere over enum-verdier er en gratis leksjon i C# Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C# Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C# Academy inneholder totalt 4 leksjoner.

Vise enum-medlemmer

Noen ganger trenger du alle verdiene i en enum, for eksempel for å bygge en meny. Enum.GetValues gir deg disse verdiene.

using System;

enum Day { Mon, Tue, Wed }
class Program {
    static void Main() {
        foreach (Day d in Enum.GetValues<Day>())
            Console.WriteLine(d);
    }
}

Generisk GetValues

Den generiske Enum.GetValues<T>() returnerer en sterkt typet tabell som De kan gå gjennom direkte.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Main() {
        Color[] all = Enum.GetValues<Color>();
        Console.WriteLine(all.Length);
    }
}

Hente medlemsnavn

Enum.GetNames<T>() returnerer medlemsnavnene som strenger.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Main() {
        foreach (string name in Enum.GetNames<Color>())
            Console.WriteLine(name);
    }
}

Navn og verdier sammen

Gå gjennom verdiene og konverter dem til int for å skrive ut både navnet og det underliggende tallet.

using System;

enum Color { Red = 1, Green = 2, Blue = 4 }
class Program {
    static void Main() {
        foreach (Color c in Enum.GetValues<Color>())
            Console.WriteLine(c + " = " + (int)c);
    }
}

Telle medlemmer

Lengden på verditabellen forteller hvor mange medlemmer enumet har.

using System;

enum Suit { Hearts, Diamonds, Clubs, Spades }
class Program {
    static void Main() {
        int count = Enum.GetValues<Suit>().Length;
        Console.WriteLine(count);
    }
}

Bygge en meny

Det er perfekt å gå gjennom verdiene når De skal skrive ut en nummerert liste over valg.

using System;

enum Option { Start, Settings, Quit }
class Program {
    static void Main() {
        int i = 1;
        foreach (Option o in Enum.GetValues<Option>())
            Console.WriteLine(i++ + ") " + o);
    }
}

Filtrere under gjennomgang

De kan hoppe over bestemte medlemmer, for eksempel en None-markør, mens De går gjennom verdiene.

using System;

enum State { None, Active, Closed }
class Program {
    static void Main() {
        foreach (State s in Enum.GetValues<State>())
            if (s != State.None)
                Console.WriteLine(s);
    }
}

Gå gjennom med LINQ

Kombiner Enum.GetValues med LINQ for filtrering eller transformasjon.

using System;
using System.Linq;

enum Level { Low = 1, Medium = 2, High = 3 }
class Program {
    static void Main() {
        var highOnes = Enum.GetValues<Level>().Where(l => (int)l >= 2);
        foreach (var l in highOnes) Console.WriteLine(l);
    }
}

Eldre ikke-generisk form

Før generiske typer ble innført, brukte De Enum.GetValues(typeof(T)), som returnerer en utypet tabell.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Main() {
        foreach (Color c in Enum.GetValues(typeof(Color)))
            Console.WriteLine(c);
    }
}

Flags og gjennomgang

For flags-enumereringer lister gjennomgangen hvert enkelt flagg. Kombinerte bekvemmelighetsmedlemmer vises også, så filtrer dem bort ved behov.

using System;

[Flags]
enum Perm { Read = 1, Write = 2, Execute = 4 }
class Program {
    static void Main() {
        foreach (Perm p in Enum.GetValues<Perm>())
            Console.WriteLine(p + " = " + (int)p);
    }
}

Hvorfor gå gjennom enum

Gjennomgang holder brukergrensesnittet og valideringen synkronisert med enumet: Når De legger til et medlem, tar løkkene det automatisk med.

using System;

enum Size { Small, Medium, Large }
class Program {
    static void Main() {
        foreach (Size s in Enum.GetValues<Size>())
            Console.WriteLine("Available: " + s);
    }
}

Rask kontroll

Test forståelsen Deres av hvordan enum kan gås gjennom.

Oppsummering

Enum.GetValues<T>() returnerer hvert medlem i en typet tabell, og Enum.GetNames<T>() returnerer navnene deres. De kan gå gjennom verdiene for å skrive ut navn med numeriske verdier, telle medlemmer, bygge menyer eller filtrere med LINQ.

Gjennomgang holder menyer og validering automatisk synkronisert etter hvert som enumet vokser.

Gratis å komme i gang

Lær deg C# med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
93
Leksjoner
346

Ofte stilte spørsmål

Er leksjonen «Iterere over enum-verdier» gratis?

Ja – hele teksten i «Iterere over enum-verdier» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av C# Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i C# Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Iterere over enum-verdier»?

Gå gjennom alle medlemmene med Enum.GetValues. Du øver på C# Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med C# Academy?

Ingen tidligere erfaring er nødvendig. C# Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Iterere over enum-verdier»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne C# Academy-leksjonen?

Ja. Alle C# Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Definere og bruke enum-typer
  2. Flags-enumtyper og bitvise kombinasjoner
  3. Konvertering og parsing av enum-typer
  4. Iterere over enum-verdier
← Tilbake til C# Academy