Ondersteuning voor zoeken op meerdere termen toevoegen
De app Contoso Pets helpt bij het vinden van nieuwe huizen voor verlaten huisdieren. Het team wil dat de zoekfunctie is verbeterd, zodat gebruikers meerdere termen kunnen invoeren bij het zoeken naar honden.
Zoekspecificatie
In deze eerste uitdagingsoefening moet u de zoekfunctie voor één term bijwerken zodat gebruikers meerdere zoektermen kunnen invoeren, gescheiden door komma's.
Meerdere zoektermen van de gebruiker verzamelen
- Toestaan dat de gebruiker meerdere zoektermen invoert bij het zoeken naar honden
- De gebruiker heeft instructies nodig om de zoektermen gescheiden door komma's in te voeren
- Afzonderlijke zoektermen scheiden van de gebruikersinvoertekenreeks en opslaan als waarden in een matrix
- De termen in de matrix sorteren in alfanumerieke sorteervolgorde
Honden identificeren met beschrijvingen met overeenkomsten voor een of meer gebruikerszoekterm
- Wanneer u een hond in de
animalsArraylijst identificeert, zoekt u naar overeenkomsten voor elke term die de gebruiker heeft ingevoerd - Geef voor een termovereenkomst een bericht weer met de naam van de hond en de term die overeenkomt
- voorbeeld:
Our dog Jake is a match for your search for sheppard!
- voorbeeld:
- Wanneer alle termenzoekopdrachten zijn afgerond voor de huidige hondenbeschrijving:
- Bij een of meer overeenkomsten geef de bijnaam en beschrijving van de desbetreffende hond weer.
- Houd voor één of meer overeenkomsten bij dat er een match is, zodat u weet dat u het bericht 'geen overeenkomsten gevonden voor alle beschikbare honden' niet wilt tonen (raadpleeg het volgende item)
- Nadat alle zoekopdrachten van honden zijn voltooid zonder overeenkomsten, geeft u het bericht 'Geen overeenkomsten gevonden voor beschikbare honden' weer
De volgende validatieregels afdwingen
- waarden kunnen niet null zijn
- waarden mogen geen nul tekens bevatten
- elke verdere beperking is aan de ontwikkelaar
Codeopmerkingen
- Genummerde codeopmerkingen in de starterscode bieden suggesties
- De opmerkingen bevinden zich in een opeenvolgende volgorde en alleen de opmerkingen beginnend met #1, #2 en #3 zijn van toepassing op deze oefening van de uitdaging
Voorbeelduitvoer
Bekijk de volgende geanimeerde afbeelding
Let op de tijdelijke weergave van '
searching...' gevolgd door de huidige term (bijvoorbeeld: "searching...retriever")U ziet dat de volgorde waarin de termen worden weergegeven in de zoekfunctie nu alfanumeriek is
U ziet dat de berichten voor overeenkomsten behouden blijven (bijvoorbeeld: "
Our dog lola is a chase match!")
Bekijk de voorbeelduitvoer in de volgende sectie, 'Uw werk controleren', voor meer informatie over het implementeren van functies
Hoe u uw werk kunt controleren
Voer de volgende stappen uit om te controleren of uw code voldoet aan de opgegeven vereisten:
- Gebruik Visual Studio Code om uw app te bouwen en uit te voeren.
Opmerking
U kunt de verificatietest afsluiten voordat u alle verificatiestappen voltooit als u een resultaat ziet dat niet voldoet aan de specificatievereisten. Druk in het terminalvenster op Ctrl+C om een exit van het actieve programma af te dwingen. Nadat u de actieve app hebt afgesloten, voltooit u de bewerkingen waarvan u denkt dat ze het probleem oplossen, slaat u daarna uw updates op in het Program.cs-bestand, en bouwt u de code opnieuw op en voert u deze uit.
De terminalopdrachtprompt moet worden weergegeven als het startpunt voor het programma
Typ bij de opdrachtprompt 2 in:
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 commasVoer bij de opdrachtprompt grote, crème, gouden in om te testen wanneer meer dan één zoekterm overeenkomt met de beschrijvingen van de hond. Controleer of het Terminal-deelvenster wordt bijgewerkt met een bericht dat vergelijkbaar is met het voorbeeld van de code-uitvoer:
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 continueDruk op de opdrachtprompt op Enter om door te gaan naar het hoofdmenu
Typ bij de opdrachtprompt 2 in:
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 commasVoer bij de opdrachtprompt grote, grijze strepen in om te testen wanneer geen van de zoektermen overeenkomt met hondenbeschrijvingen. Controleer of het Terminal-deelvenster wordt bijgewerkt met een bericht dat vergelijkbaar is met de code-uitvoervoorbeelden:
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 continueAls u verdere beperkingen voor geldige vermeldingen hebt opgegeven, voert u de juiste testcases uit om uw werk te verifiëren.
Opmerking
Als uw code voldoet aan de vereisten, moet u elke stap in de juiste volgorde kunnen voltooien en de verwachte resultaten in één testpas kunnen zien. Als u extra beperkingen hebt toegevoegd, moet u de toepassing mogelijk afsluiten en vervolgens een afzonderlijke testpas uitvoeren om uw verificatie te voltooien.
Gefeliciteerd als u geslaagd bent in deze uitdagingsoefening!