0Pricing
C# Academy · Aula

Percorrendo valores de enumerações

Enumere todos os membros com Enum.GetValues.

Percorrendo valores de enumerações é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 4 aulas no total.

Listando membros de uma enumeração

Às vezes, você precisa de todos os valores de uma enumeração, por exemplo, para criar um menu. Enum.GetValues fornece esses valores.

using System;

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

GetValues genérico

O método genérico Enum.GetValues<T>() retorna um vetor fortemente tipado pelo qual o senhor pode iterar diretamente.

using System;

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

Obtendo nomes dos membros

Enum.GetNames<T>() retorna os nomes dos membros como textos.

using System;

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

Nomes e valores juntos

Itere pelos valores e converta-os para int para exibir tanto o nome quanto o número subjacente.

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);
    }
}

Contando membros

O comprimento do vetor de valores informa quantos membros a enumeração possui.

using System;

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

Criando um menu

Iterar pelos valores é perfeito para exibir uma lista de seleção numerada.

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);
    }
}

Filtrando durante a iteração

O senhor pode ignorar determinados membros, como um marcador None, durante a iteração.

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);
    }
}

Iterando com LINQ

Combine Enum.GetValues com LINQ para filtrar ou transformar os valores.

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);
    }
}

Forma não genérica antiga

Antes dos genéricos, o senhor usava Enum.GetValues(typeof(T)), que retorna um vetor sem tipo.

using System;

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

Sinalizadores e iteração

Para enumerações de sinalizadores, a iteração lista cada sinalizador individual; membros de conveniência combinados também aparecem, portanto filtre-os se necessário.

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);
    }
}

Por que iterar enumerações

A iteração mantém a interface do usuário e a validação sincronizadas com a enumeração: adicione um membro e os laços o incluirão automaticamente.

using System;

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

Verificação rápida

Teste sua compreensão sobre a iteração de enumerações.

Recapitulação

Enum.GetValues<T>() retorna cada membro em um vetor tipado, e Enum.GetNames<T>() retorna seus nomes. O senhor pode iterar para exibir nomes com seus valores numéricos, contar membros, criar menus ou filtrar com LINQ.

A iteração mantém menus e validações automaticamente sincronizados à medida que a enumeração cresce.

Perguntas Frequentes

A aula “Percorrendo valores de enumerações” é grátis?

Sim — o texto completo de “Percorrendo valores de enumerações” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 4 aulas no total.

O que vou aprender em “Percorrendo valores de enumerações”?

Enumere todos os membros com Enum.GetValues. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C# Academy?

Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Percorrendo valores de enumerações”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C# Academy?

Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Definindo e usando enumerações
  2. Enumerações de sinalizadores e combinações bit a bit
  3. Conversão e análise de enumerações
  4. Percorrendo valores de enumerações
← Voltar para C# Academy