Saltar al pie de página
Iron Academy Logo
Aplicación C#
Aplicación C#

Otras categorías

Selección de elementos de una lista - Spectre Console Series

Tim Corey
6m 26s

Spectre Console es un potente paquete NuGet for .NET que permite a los desarrolladores crear aplicaciones de consola interactivas en lugar de programas de texto estático. Una de sus funciones más útiles es el indicador de selección de la consola de Spectre, que permite presentar una lista de opciones por las que el usuario puede desplazarse y seleccionar directamente con el teclado. Esto hace que la introducción de datos en la consola sea más fiable, fácil de usar y visualmente más pulida en comparación con tener que escribir las respuestas manualmente.

En su vídeo "Selecting Items from a List - Spectre Console Series", Tim Corey muestra exactamente cómo utilizar esta función. En este artículo, seguiremos sus explicaciones paso a paso, señalando las marcas de tiempo para que puedas verlas y codificarlas. Esta es una excelente manera de aprender a crear y personalizar un indicador de selección en sus propias aplicaciones de consola .NET.

Introducción a la lección

En el minuto 0:00, Tim explica que Spectre Console permite a los desarrolladores convertir las aplicaciones de consola de C# en aplicaciones visualmente atractivas e informativas. Su serie de vídeos cubre la biblioteca en trozos de 10 minutos, con el código fuente enlazado en la descripción.

En esta lección (0:18), Tim se centra en cómo pedir a un usuario que elija una opción de una lista y luego utilizar el teclado para navegar por esa lista. Este patrón de "preguntar y responder" es la espina dorsal de la creación de aplicaciones de consola modernas e interactivas. También recuerda a los espectadores (0:27) que se suscriban a su canal y visiten iamtimcorey.com para obtener más recursos de formación.

Creación de una solicitud de selección

En el minuto 0:34, Tim muestra una lista de nombres de marcadores de posición que utiliza habitualmente en sus aplicaciones. También podría tratarse de una lista de frutas -manzana, plátano, naranja- si se desea un ejemplo de "fruta favorita". Establece una variable de tipo cadena para contener la respuesta que elegirá el usuario:

string favoriteName;
string favoriteName;

Spectre Console Selecting Items List 1 related to Creación de una solicitud de selección

A continuación, en el minuto 0:57, Tim pasa de la instrucción básica de la lección anterior a una función 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)
);

Explica (1:13) que el SelectionPrompt requiere un título, que en su caso es "Cuál es tu nombre de marcador de posición favorito" Si estuviera preguntando por una fruta favorita, cambiaría el título en consecuencia a "Cuál es su fruta favorita"

Aunque puedes decorar el texto (1:24) con los estilos de Spectre Console -utilizando colores azules, verdes o grises, por ejemplo-, en esta lección se centra en el propio indicador de selección.

En el minuto 1:39, Tim añade las opciones-su lista de nombres-llamando a .AddChoices(). Estas opciones pueden ser cualquier cosa: frutas, números, objetos o incluso los resultados de una función de "búsqueda".

Por último, en el minuto 1:55, Tim utiliza la línea de marcado de Spectre Console para mostrar al usuario el elemento elegido:

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

Aquí se utiliza el marcado en línea para colorear la respuesta seleccionada en rojo, pero también se puede utilizar azul o verde si el tema de la consola lo requiere.

Ejecutar la solicitud de selección

Tim guarda y ejecuta el código en el minuto 2:34. La consola muestra:

  • Una lista de nombres o frutas.

  • Las teclas de flecha permiten desplazarse hacia arriba y hacia abajo (2:41).

  • Pulse Intro para seleccionar un elemento.

Tim hace una demostración seleccionando "Sue Storm" (2:50). Una vez que se pulsa Intro, la lista desaparece y aparece la consola:

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

Si esto hubiera sido una lista de frutas, podría ver: "Tu fruta favorita es el plátano" o "Tu fruta favorita es la manzana"

Manejo de listas largas

A continuación, Tim aborda un problema habitual: las listas largas. En el minuto 3:13, presenta la propiedad PageSize para limitar los elementos visibles:

.PageSize(4)
.PageSize(4)

Explica (3:19) que el cuatro es intencionadamente pequeño para demostrar la función. Sólo se muestran tantos artículos a la vez. Si tuvieras una gran lista de frutas -manzana, plátano, naranja, mango, piña-, PageSize evita que la consola se desplace interminablemente.

Para guiar a los usuarios, Tim añade un mensaje MoreChoicesText en gris a las 3:34:

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

Este texto indica al usuario que puede desplazarse hacia abajo para ver más opciones. Esto es especialmente útil cuando el tamaño de tu lista es grande y quieres una pista clara en lugar de arriesgarte a un error o confusión.

Demostración del comportamiento de la lista larga

Tim vuelve a ejecutar el programa a las 4:08:

  • Inicialmente solo aparecen cuatro opciones.

  • El mensaje en gris dice "Desplácese hacia abajo para ver más opciones" (4:13).

  • Si se desplaza hacia abajo encontrará más elementos.

  • Si vuelves a desplazarte hacia arriba, verás de nuevo las primeras (4:20).

Tim señala (4:25) que esto es ideal para listas grandes: no hay que desplazarse interminablemente por la consola. Puede mostrar 10 o 15 a la vez y dejar que el usuario hojee el resto. Esto resuelve el problema de abrumar la consola con demasiada salida a la vez.

Por qué es mejor preguntar que escribir

En el minuto 4:38, Tim explica por qué Selection Prompt es mejor que escribir:

  • Una vez hecha la elección, la lista desaparece (4:41).

  • Verás inmediatamente la respuesta elegida (4:45).

Compara esto (5:05) con los antiguos avisos en los que los usuarios tenían que escribir "sí" o "no" Con SelectionPrompt, puedes ofrecer esas opciones directamente y dejar que los usuarios seleccionen con las teclas de flecha, reduciendo los errores y haciendo que la experiencia sea más fluida.

Tim dice (5:35) que el prompt es una "adición realmente genial" porque simplifica la entrada de datos, hace que las aplicaciones de consola sean más interactivas y ofrece una solución clara a los problemas de entrada de datos.

Otros usos y temas futuros

Tim menciona (5:43) que esta lección cubre la selección de un elemento de una lista. En futuros vídeos, mostrará indicaciones de selección múltiple (5:39) en las que los usuarios pueden activar y desactivar varios elementos y, a continuación, pulsar Intro para confirmar.

También señala (5:47) que la lista puede ser de cualquier tipo de objeto: cadenas, números enteros, frutas, incluso opciones por defecto devueltas por una función. Por ejemplo, podría preguntar al usuario su fruta favorita ("manzana", "plátano", "naranja") en lugar de un nombre (5:55).

Con Selection Prompt de Spectre Console puede incluso establecer valores predeterminados, gestionar respuestas obligatorias y personalizar la acción que se realiza después de una selección.

Conclusión

Tim concluye (6:01) su vídeo reafirmando que así es como se implementa la selección de elementos en Spectre Console: una forma limpia y fácil de usar de manejar listas en aplicaciones de consola. Ya se trate de preguntar por una fruta favorita, un número o un objeto, Selection Prompt ofrece a su aplicación una experiencia pulida sin errores ni errores de escritura adicionales.

Los puntos clave del vídeo de Tim Corey

  • SelectionPrompt de Spectre Console permite a los usuarios navegar por listas con las teclas de flecha en lugar de escribir manualmente.

  • Personalice con Título, Opciones, Colores (azul, verde, gris), Tamaño de página y TextoMásOpciones para ayudar a revelar más opciones.

  • Una vez seleccionado un elemento, la lista desaparece y se muestra la respuesta elegida.

  • Ideal tanto para listas cortas como largas, evitando problemas de desplazamiento en la consola.

  • Funciona con cualquier tipo de datos (cadenas, números, frutas como manzana, plátano, naranja u objetos personalizados).

  • En futuros vídeos, Tim hablará de los mensajes de selección múltiple, en los que los usuarios pueden alternar entre varias opciones y pulsar Intro para confirmar.
Hero Worlddot related to Selección de elementos de una lista - Spectre Console Series
Hero Affiliate related to Selección de elementos de una lista - Spectre Console Series

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame