Zum Fußzeileninhalt springen
Iron Academy Logo
C#-Anwendung
C#-Anwendung

Andere Kategorien

Auswählen von Elementen aus einer Liste - Spectre Console Series

Tim Corey
6m 26s

Spectre Console ist ein leistungsstarkes NuGet-Paket for .NET, mit dem Entwickler interaktive Konsolenanwendungen anstelle von einfachen, statischen Textprogrammen erstellen können. Eine der nützlichsten Funktionen ist die Auswahlaufforderung für die Spectre-Konsole, mit der Sie eine Liste von Optionen anzeigen können, durch die der Benutzer blättern und die er direkt mit seiner Tastatur auswählen kann. Dadurch wird die Konsoleneingabe zuverlässiger, benutzerfreundlicher und visuell ausgefeilter, als wenn die Benutzer ihre Antworten manuell eingeben müssten.

In seinem Video "Auswahl von Elementen aus einer Liste - Spectre Console Series" zeigt Tim Corey genau, wie man diese Funktion verwendet. In diesem Artikel folgen wir seinen Erklärungen Schritt für Schritt und weisen auf die Zeitstempel hin, damit Sie mitlesen und mitprogrammieren können. Dies ist eine großartige Möglichkeit, um zu lernen, wie man eine Auswahl-Eingabeaufforderung in seinen eigenen .NET-Konsolenanwendungen erstellt und anpasst.

Einführung in die Lektion

Bei 0:00 erklärt Tim, dass Spectre Console es Entwicklern ermöglicht, C#-Konsolenanwendungen in visuell ansprechende, informative Anwendungen zu verwandeln. Seine Videoserie deckt die Bibliothek in 10-minütigen Abschnitten ab, wobei der Quellcode in der Beschreibung verlinkt ist.

In dieser Lektion (0:18) konzentriert sich Tim darauf, wie man einen Benutzer auffordert, eine Option aus einer Liste auszuwählen und dann die Tastatur zur Navigation in dieser Liste verwendet. Dieses "Frage- und Antwort"-Muster ist das Rückgrat der Entwicklung von Konsolenanwendungen, die modern und interaktiv wirken. Er erinnert die Zuschauer auch daran (0:27), seinen Kanal zu abonnieren und iamtimcorey.com für weitere Schulungsressourcen zu besuchen.

Erstellen einer Auswahl-Eingabeaufforderung

Bei 0:34 zeigt Tim eine Liste von Platzhalternamen, die er häufig in seinen Anwendungen verwendet. Dies könnte genauso gut eine Liste von Früchten sein - Apfel, Banane, Orange - wenn Sie ein Beispiel für eine "Lieblingsfrucht" suchen. Er richtet eine Variable vom Typ String ein, um die Antwort zu speichern, die der Benutzer wählen wird:

string favoriteName;
string favoriteName;

Spectre Console Selecting Items List 1 related to Erstellen einer Auswahl-Eingabeaufforderung

Bei 0:57 geht Tim dann von der grundlegenden Eingabeaufforderung, die in der vorherigen Lektion behandelt wurde, zu einer vollständigen SelectionPrompt-Funktion über:

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

Er erklärt (1:13), dass die SelectionPrompt einen Titel erfordert, der in seinem Fall "Welches ist Ihr Lieblingsplatzhaltername" lautet Wenn Sie nach einer Lieblingsfrucht fragen würden, würden Sie den Titel entsprechend in "Welches ist Ihre Lieblingsfrucht" ändern

Während Sie den Text (1:24) mit den Stilen der Spectre-Konsole ausschmücken können - z. B. mit blauen, grünen oder grauen Farben - konzentriert er sich in dieser Lektion auf die Auswahlaufforderung selbst.

Bei 1:39 fügt Tim die Auswahlmöglichkeiten - seine Namensliste - durch den Aufruf von .AddChoices() hinzu. Dabei kann es sich um alles Mögliche handeln: Früchte, Zahlen, Objekte oder sogar die Ergebnisse einer "Suchfunktion".

Abschließend, bei 1:55, verwendet Tim die Markup-Zeile von Spectre Console, um dem Benutzer das ausgewählte Element anzuzeigen:

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

Hier wird Inline-Markup verwendet, um die ausgewählte Antwort in Rot zu färben, aber Sie können genauso gut Blau oder Grün verwenden, wenn Ihr Konsolenthema dies erfordert.

Ausführung der Auswahl-Eingabeaufforderung

Tim speichert und führt den Code bei 2:34 aus. Auf der Konsole wird angezeigt:

  • Eine Liste von Namen oder Früchten.

  • Mit den Pfeiltasten können Sie sich nach oben und unten bewegen (2:41).

  • Drücken Sie die Eingabetaste, um ein Element auszuwählen.

Tim demonstriert die Auswahl von "Sue Storm" (2:50). Sobald die Eingabetaste gedrückt wird, wird die Liste ausgeblendet und die Konsole ausgegeben:

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

Wenn es sich um eine Obstliste handeln würde, würden Sie vielleicht sehen: "Ihre Lieblingsfrucht ist Banane" oder "Ihre Lieblingsfrucht ist Apfel"

Behandlung langer Listen

Anschließend geht Tim auf ein häufiges Problem ein: lange Listen. Bei 3:13 stellt er die PageSize-Eigenschaft zur Begrenzung der sichtbaren Elemente vor:

.PageSize(4)
.PageSize(4)

Er erklärt (3:19), dass four absichtlich klein ist, um die Funktion zu demonstrieren. Es werden nur so viele Elemente auf einmal angezeigt. Wenn Sie eine große Obstliste hätten - Apfel, Banane, Orange, Mango, Ananas - verhindert PageSize, dass die Konsole endlos scrollt.

Um die Benutzer zu führen, fügt Tim bei 3:34 eine MoreChoicesText-Meldung in Grau hinzu:

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

Dieser Text weist den Benutzer darauf hin, dass er nach unten gehen kann, um weitere Auswahlmöglichkeiten zu erhalten. Dies ist besonders hilfreich, wenn Ihre Liste sehr groß ist und Sie einen klaren Hinweis wünschen, anstatt Fehler oder Verwirrung zu riskieren.

Demonstration des Verhaltens der langen Liste

Tim führt das Programm bei 4:08 erneut aus:

  • Zunächst erscheinen nur vier Optionen.

  • Die graue Meldung lautet: "Bewegen Sie sich nach unten, um weitere Auswahlmöglichkeiten zu sehen" (4:13).

  • Wenn Sie nach unten scrollen, werden weitere Elemente angezeigt.

  • Wenn Sie zurück nach oben scrollen, sehen Sie wieder die ersten Beiträge (4:20).

Tim merkt an (4:25), dass dies ideal für große Listen ist - kein endloses Scrollen auf der Konsole. Sie können 10 oder 15 auf einmal anzeigen und den Benutzer den Rest durchblättern lassen. So lässt sich das Problem lösen, dass die Konsole mit zu vielen Ausgaben auf einmal überfordert ist.

Warum die Eingabeaufforderung besser ist als das Tippen

Bei 4:38 zeigt Tim auf, warum Selection Prompt besser ist als Tippen:

  • Sobald Sie eine Auswahl getroffen haben, verschwindet die Liste (4:41).

  • Sie sehen sofort die von Ihnen gewählte Antwort (4:45).

Er vergleicht dies (5:05) mit alten Eingabeaufforderungen, bei denen die Benutzer "Ja" oder "Nein" eingeben mussten Mit SelectionPrompt können Sie diese Auswahlmöglichkeiten direkt anbieten und die Benutzer mit den Pfeiltasten auswählen lassen, wodurch Fehler reduziert werden und die Erfahrung reibungsloser wird.

Tim sagt (5:35), die Eingabeaufforderung sei eine "wirklich coole Ergänzung", weil sie die Eingabe vereinfacht, Konsolenanwendungen interaktiver macht und eine klare Lösung für Eingabeprobleme bietet.

Andere Verwendungen und zukünftige Themen

Tim erwähnt (5:43), dass diese Lektion die Auswahl eines Elements aus einer Liste behandelt. In zukünftigen Videos wird er Aufforderungen zur Mehrfachauswahl zeigen (5:39), bei denen Benutzer mehrere Elemente ein- und ausschalten und dann zur Bestätigung die Eingabetaste drücken können.

Er weist auch darauf hin (5:47), dass die Liste jeden Objekttyp enthalten kann - Zeichenketten, Ganzzahlen, Früchte, sogar Standardoptionen, die von einer Funktion zurückgegeben werden. Zum Beispiel könnten Sie den Benutzer nach seiner Lieblingsfrucht ("Apfel", "Banane", "Orange") statt nach einem Namen fragen (5:55).

Mit der Auswahlaufforderung von Spectre Console können Sie sogar Standardwerte festlegen, erforderliche Antworten behandeln und die nach einer Auswahl durchgeführte Aktion anpassen.

Abschluss

Tim schließt sein Video ab (6:01), indem er bekräftigt, dass dies die Art und Weise ist, wie Sie die Elementauswahl in Spectre Console implementieren - eine saubere, benutzerfreundliche Art, Listen in Konsolenanwendungen zu handhaben. Ganz gleich, ob Sie nach einer Lieblingsfrucht, einer Zahl oder einem Objekt fragen, die Auswahleingabeaufforderung bietet Ihrer App ein ausgefeiltes Erlebnis ohne zusätzliche Tipparbeit oder Fehler.

Die wichtigsten Erkenntnisse aus dem Video von Tim Corey

  • Mit SelectionPrompt von Spectre Console können Benutzer mit Pfeiltasten durch Listen navigieren, anstatt Eingaben manuell einzugeben.

  • Anpassen mit Title, Choices, Colors (blau, grün, grau), PageSize und MoreChoicesText, um mehr Optionen zu zeigen.

  • Sobald ein Element ausgewählt wird, verschwindet die Liste und die gewählte Antwort wird angezeigt.

  • Ideal sowohl für kurze als auch für lange Listen, um Probleme beim Scrollen der Konsole zu vermeiden.

  • Funktioniert mit jedem Datentyp (String, Zahlen, Früchte wie Apfel, Banane, Orange oder benutzerdefinierte Objekte).

  • Tim wird in zukünftigen Videos Mehrfachauswahl-Eingabeaufforderungen behandeln, bei denen Benutzer mehrere Optionen auswählen und dann zur Bestätigung die Eingabetaste drücken können.
Hero Worlddot related to Auswählen von Elementen aus einer Liste - Spectre Console Series
Hero Affiliate related to Auswählen von Elementen aus einer Liste - Spectre Console Series

Verdienen Sie mehr, indem Sie teilen, was Sie lieben

Erstellen Sie Inhalte für Entwickler, die mit .NET, C#, Java, Python oder Node.js arbeiten? Verwandeln Sie Ihr Fachwissen in ein zusätzliches Einkommen!

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an