複数用語検索のサポートを追加する
Contoso Pets アプリは、捨てられたペットに新しい飼い主に見つけてあげるのに役立ちます。 チームは、ユーザーが受け入れる犬を検索するときに複数の用語を入力できるように検索機能を改良したいと考えています。
検索仕様
この最初の課題の演習では、ユーザーが複数の検索語句をコンマで区切って入力できるように、単一用語の検索機能を更新する必要があります。
ユーザーから複数の検索語句を収集する
- 犬を検索するときに、ユーザーが複数の検索語句を入力できるようにする
- ユーザーには、"検索語句をコンマで区切って入力する" という指示が必要
- ユーザー入力文字列から個々の検索用語を分離し、配列に値として格納する
- 配列内の用語を英数字の並べ替え順序で並べ替える
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!
")
次のセクション「作業をチェックする方法」の出力サンプルを確認して、機能を実装する方法をさらに明確にする
作業をチェックする方法
コードが指定された要件を満たしていることを検証するには、次の手順のようにします。
- Visual Studio Code を使ってアプリをビルドして実行します。
Note
結果が仕様の要件を満たさない場合は、すべての検証手順を完了する前に検証テストを終了できます。 実行中のプログラムから強制的に終了するには、ターミナル パネルで Ctrl + C キーを押します。 実行中のアプリを終了した後、作業中の問題に対処できると思われる編集を完了し、更新内容を Program.cs ファイルに保存してから、コードをビルドし直して実行します。
ターミナル コマンド プロンプトがプログラムの開始点として表示されます
コマンド プロンプトで、メニューとして「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
コマンド プロンプトで、「large, cream, golden」と入力して、複数の検索語句が犬の説明と一致するかどうかをテストします。 ターミナル パネルが更新されて、コード出力サンプルのようなメッセージが表示されることを確認します。
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
コマンド プロンプトで Enter キーを押して、メイン メニューに進みます
コマンド プロンプトで、メニューとして「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
コマンド プロンプトで、「big, gray, stripes」と入力して、犬の説明に一致する検索用語がないかどうかをテストします。 ターミナル パネルが更新されて、コード出力サンプルのようなメッセージが表示されることを確認します。
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
有効なエントリに対してさらなる制限を指定してある場合は、適切なテスト ケースを実行して作業を確認してください。
Note
コードが要件を満たしている場合、各ステップを順番に完了すれば、1 回のテスト パスで期待される結果を確認できるはずです。 さらに制限を追加した場合は、アプリケーションを終了してから、別のテスト パスを実行して所定の検証を完了することが必要な場合があります。
この課題の演習に成功したら完了です。