IRONSOFTWAREHOME

從一個列表中選擇項目 - Spectre Console 系列

從列表中選擇項目—Spectre Console系列

Tim Corey

6m 26s

Spectre Console 是一個強大的 NuGet 套件,讓開發者可以為 .NET 建立互動式的主控台應用程式,而非單純的靜態文字程式。 其中一個最有用的功能是 Spectre Console 選擇提示,這讓您可以提供一個選項清單,讓使用者可以直接用鍵盤滾動並選擇。 這使得主控台輸入比讓人們手動輸入答案更可靠、更友善且視覺上更精緻。

在他的视频"從列表中選擇項目—Spectre Console 系列"中,Tim Corey 顯示了如何使用這個功能。 在這篇文章中,我們將逐步跟隨他的解釋並指出時間標記,以便您可以一邊觀看一邊編碼。 這是一個學習如何在您自己的 .NET 主控台應用程式中建立和自訂選擇提示的好方法。

課程介紹

在 0:00,Tim 解釋 Spectre Console 可以讓開發者將 C# 主控台應用程式轉變為視覺吸引且資訊豐富的應用程式。 他的系列影片是以 10 分鐘的段落介紹這個程式庫,並在描述中連結了源程式碼。

在這堂課程中(0:18),Tim 著重介紹如何要求使用者從列表中選擇一個選項,然後使用鍵盤來導航這個列表。這種"問答"模式是構建現代互動式主控台應用程式的基礎。他還提醒觀眾(0:27)訂閱他的頻道並存取 iamtimcorey.com 獲得更多的培訓資源。

建立選擇提示

在 0:34,Tim 展示了一個在他應用程式中常用的佔位符名稱列表。 如果您想要一個"喜愛水果"的例子,這同樣可以是一個水果列表——蘋果、香蕉、橙子。 他設置了一個字串型別的變數來保存使用者選擇的答案:

string favoriteName;

然後在 0:57,Tim 從上一課程的基本提示轉進到完整的 SelectionPrompt 功能:

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

他解釋說(1:13),SelectionPrompt 需要一個標題,在他的例子中是"您最喜歡的佔位符名稱是什麼。" 如果您要詢問喜歡的水果,則應相應地更改標題為"您最喜歡的水果是什麼。"

雖然您可以使用 Spectre Console 的樣式(例如使用藍色、綠色或灰色)裝飾文字(1:24),但在這堂課中他專注於選擇提示本身。

在1:39,Tim 調用 .AddChoices() 加入了選項——他的名稱列表。 這些選項可以是任何東西:水果、數字、物件,甚至是"搜尋"功能的結果。

最後,在 1:55,Tim 使用 Spectre Console 的標註行將選擇的項目顯示給使用者:

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

這使用行內標註將選擇的答案顯示為紅色,但如果您的主控台主題需要,您也可以很容易地使用藍色或綠色。

運行選擇提示

Tim 在 2:34 儲存並運行程式碼。主控台展示:

  • 一個名稱或水果的列表。

  • 上下箭頭鍵可讓您向上或向下移動(2:41)。

  • 按 Enter 選擇一個項目。

Tim 示範選擇"Sue Storm"(2:50)。 一旦按下 Enter,列表消失,主控台輸出:

Your favorite name is Sue Storm.

如果這是一個水果列表,您可能會看到:"您最喜歡的水果是香蕉"或"您最喜歡的水果是蘋果。"

處理長列表

Tim 接著處理一個常見問題:長列表。 在 3:13,他引入了 PageSize 屬性來限制可見項目數:

.PageSize(4)

他解釋(3:19),四是故意設置的小數量以演示功能。 一次僅顯示這麼多項目。 如果您有一個大的水果列表—蘋果、香蕉、橙子、芒果、鳳梨—PageSize 防止主控台無限滾動。

為了引導使用者,Tim 在 3:34 用灰色新增了一個 MoreChoicesText 訊息:

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

這段文字告訴使用者他們可以向下移動以顯示更多選項。 當列表較大且您想要明確提示而不是冒著出錯或混淆的風險時,這特別有用。

展示長列表行為

Tim 在 4:08 再次運行程式:

  • 初始僅顯示四個選項。

  • 灰色訊息說"向下移動以顯示更多選項"(4:13)。

  • 向下滾動顯示其他項目。

  • 向上滾動再次顯示第一批項目(4:20)。

Tim 指出(4:25)這對於大型列表最理想—無需無限主控台滾動。 您可以一次顯示 10 或 15 個項目,然後讓使用者翻頁查看其餘項目。這解決了一次產生過多輸出的問題。

為什麼選擇提示比輸入更好

在 4:38,Tim 強調為何選擇提示比輸入更好:

  • 一旦您做出選擇,列表會消失(4:41)。

  • 您會立即看到您選擇的答案(4:45)。

他將這與舊的提示(5:05)進行比較,以前使用者必須輸入"yes"或"no"。通過 SelectionPrompt,您可以直接提供這些選擇並讓使用者用箭頭鍵選擇,從而減少錯誤並使體驗更流暢。

Tim 說(5:35)這個提示是一個"非常酷的附加",因為它簡化了輸入,使主控台應用程式更具互動性,並為輸入問題提供了明確的解決方案。

其他用途及未來主題

Tim 提到(5:43)這堂課程涵蓋了從列表中選擇一個項目。在未來的影片中,他將會展示多選提示(5:39),使用者可以切換多個項目並按下 Enter 確認。

他也提及(5:47)列表可以是任何物件型別 - 字串、整數、水果,甚至是函式返回的預設選項。 例如,您可以詢問使用者他們最喜歡的水果("蘋果"、"香蕉"、"橙子")而不是名字(5:55)。

利用 Spectre Console 的選擇提示,您甚至可以設置預設值,處理必需的答案,並自訂選擇後要採取的行動。

結論

Tim 結束影片時(6:01)重申這就是如何在 Spectre Console 中實作項目選擇——一種乾淨、對使用者友好的方式來處理主控台應用程式中的列表。 無論您在詢問喜歡的水果、數字還是物件,選擇提示都能為您的應用程式提供極佳的體驗,無需多餘的輸入或錯誤。

Tim Corey 影片的關鍵要點

  • Spectre Console 的 SelectionPrompt 允許使用者使用箭頭鍵導航列表,而不是手動輸入。

  • 可通過標題、選項、顏色(藍色、綠色、灰色)、PageSize 和 MoreChoicesText 自訂以幫助顯示更多選擇。

  • 一旦選擇項目,列表消失,並顯示選擇的答案。

  • 適用於長短列表,防止主控台滾動問題。

  • 適用於任何資料型別(字串、數字、水果如蘋果、香蕉、橙子,或自定義物件)。

  • Tim 將在未來的影片中報導多選提示,使用者可以切換多個選項,然後按下 Enter 確認。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立