添加多词搜索支持
Contoso 宠物应用有助于为废弃宠物寻找新家。 团队希望改进搜索功能,让用户在搜索狗时输入多个术语。
搜索规范
在本第一个挑战练习中,你需要更新单个词搜索功能,以允许用户输入以逗号分隔的多个搜索词。
从用户收集多个搜索词
- 允许用户在搜索狗时输入多个搜索词
- 用户需要“输入用逗号分隔的搜索词”的指令
- 将单个搜索词与用户输入字符串分开,并将其存储为数组中的值
- 按字母数字排序顺序对数组中的术语进行排序
识别符合一个或多个用户搜索词描述的狗
- 在
animalsArray中识别狗狗时,搜索用户输入的每个词的匹配项 - 对于术语匹配,输出包含狗名称和匹配的术语的消息
- 示例:
Our dog Jake is a match for your search for sheppard!
- 示例:
- 对当前狗狗描述完成所有术语搜索后:
- 对于一个或多个匹配项,输出当前狗的昵称和说明
- 对于一个或多个匹配项,跟踪已有一个匹配项,这样你就知道不会显示“找不到任何可领养狗狗的匹配项”消息(请参阅下一项)
- 在完成所有狗狗搜索,并且没有匹配项后,将会显示一条消息,指出“找不到任何可领养狗狗的匹配项”
强制实施以下验证规则
- 值不能为 null
- 值不能有零个字符
- 任何进一步的限制都由开发人员决定
代码注释
- 起始代码中的编号代码注释提供了一些建议
- 批注按顺序排列,仅从 #1、#2 和 #3 开始的注释适用于本挑战练习
示例输出
查看以下动画图像
请注意,临时显示的“
searching...”后跟当前搜索词(例如“searching...retriever”)请注意,搜索中的术语现在以字母和数字顺序排列。
请注意匹配的消息仍然存在(示例:“
Our dog lola is a chase match!”)
查看以下部分中的示例输出“如何检查工作”,以进一步阐明如何实现功能
如何检查工作
若要验证代码是否满足指定的要求,请完成以下步骤:
- 使用 Visual Studio Code 生成和运行应用。
注释
如果看到的结果不符合规范要求,可以先退出验证测试,然后再完成所有验证步骤。 若要强制退出正在运行的程序,请在终端面板中按 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, gold”进行测试。 验证终端面板是否使用类似于代码输出示例的消息进行更新:
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在命令提示符下,输入 大灰色条带 以测试何时没有搜索词与狗的描述匹配。 验证终端面板是否使用类似于代码输出示例的消息进行更新:
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如果为有效条目指定了进一步的限制,请运行相应的测试用例来验证你的工作。
注释
如果代码满足要求,则应能够按顺序完成每个步骤,并在单个测试通过中查看预期结果。 如果添加了其他限制,可能需要退出应用程序,然后运行单独的测试通道来完成验证。
如果成功参加此挑战练习,恭喜!