Ir para o conteúdo do rodapé
Iron Academy Logo
Aplicação C#
Aplicação C#

Outras categorias

Selecionando itens de uma lista - Série de consoles Spectre

Tim Corey
6m 26s

O Spectre Console é um poderoso pacote NuGet for .NET que permite aos desenvolvedores criar aplicativos de console interativos em vez de programas de texto estáticos e simples. Uma de suas funcionalidades mais úteis é o Prompt de Seleção do Console Spectre, que permite apresentar uma lista de opções que o usuário pode percorrer e selecionar diretamente com o teclado. Isso torna a entrada de dados pelo console mais confiável, fácil de usar e visualmente mais refinada em comparação com a digitação manual das respostas.

Em seu vídeo " Selecionando itens de uma lista – Série Spectre Console ", Tim Corey mostra exatamente como usar esse recurso. Neste artigo, acompanharemos suas explicações passo a passo, indicando os momentos específicos para que você possa assistir e programar junto. Esta é uma ótima maneira de aprender como criar e personalizar um prompt de seleção em seus próprios aplicativos de console .NET .

Introdução à aula

Às 0:00, Tim explica que o Spectre Console permite que os desenvolvedores transformem aplicativos de console C# em aplicativos visualmente atraentes e informativos. Sua série de vídeos aborda a biblioteca em blocos de 10 minutos, com o código-fonte disponível na descrição.

Nesta lição (0:18), Tim se concentra em como pedir ao usuário que escolha uma opção de uma lista e, em seguida, usar o teclado para navegar por essa lista. Esse padrão de "perguntar e responder" é a base para a criação de aplicativos de console com aparência moderna e interativa. Ele também lembra os espectadores (0:27) de se inscreverem em seu canal e visitarem iamtimcorey.com para obter mais recursos de treinamento.

Criando uma opção de seleção

Aos 0:34, Tim mostra uma lista de nomes de espaços reservados que ele usa com frequência em seus aplicativos. Isso poderia ser facilmente uma lista de frutas — maçã, banana, laranja — se você quisesse um exemplo de "fruta favorita". Ele cria uma variável do tipo string para armazenar a resposta que o usuário escolherá:

string favoriteName;
string favoriteName;

Spectre Console Selecting Items List 1 related to Criando uma opção de seleção

Em seguida, aos 0:57, Tim passa do prompt básico abordado na lição anterior para uma função SelectionPrompt completa:

favoriteName = AnsiConsole.Prompt(
    new SelectionPrompt<string>()
        .Title("Which is your favorite placeholder name")
        .AddChoices(names)
);
favoriteName = AnsiConsole.Prompt(
    new SelectionPrompt<string>()
        .Title("Which is your favorite placeholder name")
        .AddChoices(names)
);

Ele explica (1:13) que o SelectionPrompt requer um título, que no caso dele é "Qual é o seu nome de espaço reservado favorito". Se você estivesse perguntando sobre uma fruta favorita, você mudaria o título de acordo para "Qual é a sua fruta favorita".

Embora você possa decorar o texto (1:24) com os estilos do Spectre Console — usando cores azul, verde ou cinza, por exemplo — nesta lição ele está se concentrando no próprio prompt de seleção.

Às 1:39, Tim adiciona as opções — sua lista de nomes — chamando .AddChoices(). Essas opções podem ser qualquer coisa: frutas, números, objetos ou até mesmo os resultados de uma função de "busca".

Finalmente, em 1:55, Tim usa a linha de marcação do Spectre Console para exibir o item escolhido de volta para o usuário:

AnsiConsole.MarkupLine($"Your favorite name is [red]{favoriteName}[/].");
AnsiConsole.MarkupLine($"Your favorite name is [red]{favoriteName}[/].");

Este código utiliza marcação embutida para colorir a resposta selecionada em vermelho, mas você poderia usar azul ou verde com a mesma facilidade, caso o tema do seu console exija.

Executando o prompt de seleção

Tim salva e executa o código às 2:34. O console exibe:

  • Uma lista de nomes ou frutas.

  • As teclas de seta permitem mover para cima e para baixo (2:41).

  • Pressione Enter para selecionar um item.

Tim demonstra como selecionar "Sue Storm" (2:50). Assim que a tecla Enter for pressionada, a lista desaparecerá e o console exibirá a seguinte mensagem:

Your favorite name is Sue Storm.
Your favorite name is Sue Storm.

Se fosse uma lista de frutas, você poderia ver: "Sua fruta favorita é banana" ou "Sua fruta favorita é maçã".

Lidando com listas extensas

Tim então aborda um problema comum: listas longas. Aos 3:13, ele apresenta a propriedade PageSize para limitar os itens visíveis:

.PageSize(4)
.PageSize(4)

Ele explica (3:19) que quatro é intencionalmente pequeno para demonstrar a característica. Apenas essa quantidade de itens é exibida por vez. Se você tiver uma lista extensa de frutas — maçã, banana, laranja, manga, abacaxi — o PageSize impede que o console role indefinidamente.

Para orientar os usuários, Tim adiciona uma mensagem MoreChoicesText em cinza às 3:34:

.MoreChoicesText("[grey](Move down to reveal more choices)[/]")
.MoreChoicesText("[grey](Move down to reveal more choices)[/]")

Este texto informa ao usuário que ele pode rolar para baixo para revelar mais opções. Isso é especialmente útil quando sua lista é grande e você deseja uma dica clara em vez de correr o risco de cometer um erro ou causar confusão.

Demonstrando o comportamento de lista longa

Tim executa o programa novamente às 4:08:

  • Inicialmente, apenas quatro opções são exibidas.

  • A mensagem cinza diz "Deslize para baixo para revelar mais opções" (4:13).

  • Deslizar para baixo revela itens adicionais.

  • Ao rolar para cima novamente, os primeiros aparecem (4:20).

Tim observa (4:25) que isso é ideal para listas grandes — sem rolagem infinita no console. Você pode exibir 10 ou 15 itens por vez e deixar o usuário navegar pelas páginas restantes. Isso resolve o problema de sobrecarregar o console com muita informação de uma só vez.

Por que o prompt de seleção é melhor do que digitar

Aos 4:38, Tim destaca por que o recurso de seleção é melhor do que digitar:

  • Assim que você fizer uma escolha, a lista desaparece (4:41).

  • Você vê imediatamente a resposta escolhida (4:45).

Ele compara isso (5:05) aos antigos prompts em que os usuários tinham que digitar "sim" ou "não". Com o SelectionPrompt, você pode oferecer essas opções diretamente e permitir que os usuários selecionem com as teclas de seta, reduzindo erros e tornando a experiência mais fluida.

Tim diz (5:35) que o prompt é um "acréscimo muito legal" porque simplifica a entrada de dados, torna os aplicativos de console mais interativos e fornece uma solução clara para problemas de entrada.

Outros usos e tópicos futuros

Tim menciona (5:43) que esta lição aborda a seleção de um item de uma lista. Em vídeos futuros, ele mostrará prompts de seleção múltipla (5:39) onde os usuários podem ativar e desativar vários itens e, em seguida, pressionar Enter para confirmar.

Ele também observa (5:47) que a lista pode ser de qualquer tipo de objeto - strings, inteiros, frutas, até mesmo opções padrão retornadas de uma função. Por exemplo, você poderia perguntar ao usuário qual é sua fruta favorita ("maçã", "banana", "laranja") em vez de um nome (5:55).

Com o recurso de seleção do Spectre Console, você pode até mesmo definir valores padrão, lidar com respostas obrigatórias e personalizar a ação executada após uma seleção.

Conclusão

Tim conclui (6:01) seu vídeo reafirmando que esta é a maneira de implementar a seleção de itens no Spectre Console - uma forma limpa e fácil de usar para lidar com listas em aplicativos de console. Seja para pedir sua fruta favorita, um número ou um objeto, o recurso de seleção automática proporciona uma experiência refinada ao seu aplicativo, sem necessidade de digitação adicional ou erros.

Principais conclusões do vídeo de Tim Corey

  • O SelectionPrompt do Spectre Console permite que os usuários naveguem pelas listas usando as teclas de seta em vez de digitar manualmente.

  • Personalize com Título, Opções, Cores (azul, verde, cinza), Tamanho da Página e Texto de Mais Opções para ajudar a revelar mais opções.

  • Assim que um item é selecionado, a lista desaparece e a resposta escolhida é exibida.

  • Ideal para listas curtas e longas, evitando problemas de rolagem no console.

  • Funciona com qualquer tipo de dado (string, números, frutas como maçã, banana, laranja ou objetos personalizados).

  • Tim abordará os prompts de seleção múltipla em vídeos futuros, onde os usuários podem alternar entre várias opções e pressionar Enter para confirmar.
Hero Worlddot related to Selecionando itens de uma lista - Série de consoles Spectre
Hero Affiliate related to Selecionando itens de uma lista - Série de consoles Spectre

Ganhe mais compartilhando o que você ama.

Você cria conteúdo para desenvolvedores que trabalham com .NET, C#, Java, Python ou Node.js? Transforme sua expertise em renda extra!

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim