複数の用語検索のサポートを追加する

完了

Contoso Pets アプリは、捨てられたペットの新しい家を見つけるのに役立ちます。 チームは、採用する犬を検索するときにユーザーが複数の用語を入力できるように検索機能を改善したいと考えています。

検索の仕様

この最初のチャレンジ演習では、ユーザーが複数の検索語句をコンマで区切って入力できるように、1 つの用語検索機能を更新する必要があります。

ユーザーから複数の検索語句を収集する

  • 犬を検索するときにユーザーが複数の検索語句を入力できるようにする
  • ユーザーには、"コンマで区切って検索語句を入力する" という手順が必要です
  • 個々の検索語句をユーザー入力文字列から分離し、配列内の値として格納する
  • 配列内の用語を英数字の 並べ替え順序で並べ替える

1 つ以上のユーザー検索用語に一致する説明を持つ犬を識別する

  • animalsArrayで犬を識別するときに、ユーザーが入力した各用語の一致を検索します
  • 用語の一致の場合は、犬の名前と一致する用語を含むメッセージを出力します
    • 例: Our dog Jake is a match for your search for sheppard!
  • すべての用語検索で現在の犬の説明が完了すると、次のようになります。
    • 1 つ以上の一致する場合は、現在の犬のニックネームと説明を出力します
    • 1 つ以上の一致の場合は、"使用可能な犬に一致するものが見つかりません" というメッセージを表示しないように、一致が見つかったことを追跡します (次の項目を参照してください)
  • すべての犬の検索が一致なしで完了したら、「使用可能な犬の一致が見つかりません」というメッセージを表示します。

次の検証規則を適用する

  • 値を null にすることはできません
  • 値に 0 文字を指定することはできません
  • それ以上の制限は開発者にかか

コード コメント

  • サンプルコードに含まれる番号付きのコードコメントは、提案を提供します。
  • コメントは順番に並べられ、チャレンジのこの演習には #1、#2、および #3 以降のコメントのみが適用されます。

サンプル出力

  • 次のアニメーション画像を確認する

    • "searching..." の後に現在の用語 (例: "searching...retriever") が一時的に表示されていることに注意してください。

    • 検索で用語が表示される順序が英数字になっていることに注意してください

    • 一致のメッセージが保持されていることに注意してください (例: "Our dog lola is a chase match!")

      4 人のユーザーが送信した用語を含む犬の説明を検索するアプリケーションの例のアニメーションスクリーンショット。

  • 次のセクション「作業を確認する方法」のサンプル出力を確認して、機能の実装方法をさらに明確にします。

作業を確認する方法

コードが指定された要件を満たしていることを検証するには、次の手順のようにします。

  1. Visual Studio Code を使ってアプリをビルドして実行します。

結果が仕様の要件を満たさない場合は、すべての検証手順を完了する前に検証テストを終了できます。 実行中のプログラムから強制的に終了するには、ターミナル パネルで Ctrl キーを押しながら C キーを押します。 実行中のアプリを終了した後、作業中の問題に対処できると思われる編集を完了し、更新内容を Program.cs ファイルに保存してから、コードをビルドし直して実行します。

  1. ターミナル コマンド プロンプトがプログラムの開始点として表示されます

  2. コマンド プロンプトで、「 2 」メニューを入力します。

    Welcome to the Contoso PetFriends app. Your main menu options are:
     1. List all of our current pet information
     2. Display all dogs with a specified characteristic
    
    Enter your selection number (or type Exit to exit the program)
    2
    
    Enter dog characteristics to search for separated by commas
    
  3. コマンド プロンプトで、大きな、クリーム、ゴールデン を入力して、複数の検索語句が犬の説明に一致するかどうかをテストします。 ターミナル パネルが、コード出力サンプルのようなメッセージで更新されることを確認します。

    Enter dog characteristics to search for separated by commas
    large, cream, golden
    
    Our dog Nickname: lola matches your search for cream
    Our dog Nickname: lola matches your search for golden
    Nickname: lola (ID #: d1)
    Physical description: medium sized cream colored female golden retriever weighing about 45 pounds. housebroken.
    Personality: loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.
    
    Our dog Nickname: gus matches your search for golden
    Our dog Nickname: gus matches your search for large
    Nickname: gus (ID #: d2)
    Physical description: large reddish-brown male golden retriever weighing about 85 pounds. housebroken.
    Personality: loves to have his ears rubbed when he greets you at the door, or at any time! loves to lean-in and give doggy hugs.
    
    Press the Enter key to continue
    
  4. コマンド プロンプトで Enter キーを押して、メイン メニューに進みます

  5. コマンド プロンプトで、「 2 」メニューを入力します。

    Welcome to the Contoso PetFriends app. Your main menu options are:
     1. List all of our current pet information
     2. Display all dogs with a specified characteristic
    
    Enter your selection number (or type Exit to exit the program)
    2
    
    Enter dog characteristics to search for separated by commas
    
    
  6. コマンド プロンプトで、検索語句が犬の説明と一致しない場合にテストする 大きい、灰色のストライプ を入力します。 ターミナル パネルが、コード出力サンプルのようなメッセージで更新されることを確認します。

    Enter dog characteristics to search for separated by commas
    big, grey, stripes
    
    None of our dogs are a match for: big, grey, stripes
    
    
    Press the Enter key to continue
    
  7. 有効なエントリに対してさらに制限を指定した場合は、適切なテスト ケースを実行して作業を確認します。

コードが要件を満たしている場合は、各手順を順番に完了し、期待される結果を 1 つのテスト パスで確認できる必要があります。 追加の制限を追加した場合は、アプリケーションを終了してから、別のテスト パスを実行して検証を完了することが必要になる場合があります。

この課題の演習に成功した場合は、おめでとうございます。