Aggiungere il supporto per la ricerca con termini multipli

Completato

L'app Contoso Pets consente di trovare nuove case per animali domestici abbandonati. Il team vuole migliorare la funzionalità di ricerca per consentire agli utenti di immettere più termini durante la ricerca di cani da adottare.

Specifica di ricerca

In questo primo esercizio di verifica è necessario aggiornare la funzionalità di ricerca a termine singolo per consentire agli utenti di immettere più termini di ricerca separati da virgole.

Raccogliere più termini di ricerca dall'utente

  • Consentire all'utente di immettere più termini di ricerca durante la ricerca di cani
  • L'utente ha bisogno di istruzioni per "immettere i termini di ricerca separati da virgole"
  • Separare i singoli termini di ricerca dalla stringa di immissione dell'utente e archiviarli come valori in una matrice
  • Ordinare i termini nella matrice in ordine alfanumerico

Identificare i cani con descrizioni con corrispondenze per uno o più termini di ricerca utente

  • Quando si identifica un cane in animalsArray, cercare corrispondenze per ogni termine immesso dall'utente
  • Per una corrispondenza di termine, restituire un messaggio con il nome dei cani e il termine corrispondente
    • esempio: Our dog Jake is a match for your search for sheppard!
  • Quando le ricerche di tutti i termini sono complete per la descrizione corrente del cane:
    • Per una o più corrispondenze, restituire il nome alternativo e la descrizione per il cane corrente
    • Per una o più corrispondenze, tenere traccia che è stata rilevata una corrispondenza in modo da non visualizzare un messaggio "nessuna corrispondenza trovata per i cani disponibili" (fare riferimento all'elemento successivo)
  • Dopo aver completato tutte le ricerche di cani senza corrispondenze, visualizza un messaggio "Nessuna corrispondenza trovata per i cani disponibili"

Applicare le regole di convalida seguenti

  • i valori non possono essere Null
  • i valori non possono avere zero caratteri
  • qualsiasi ulteriore restrizione spetta allo sviluppatore

Commenti del codice

  • Commenti numerati nel codice di partenza offrono suggerimenti
  • I commenti sono in ordine sequenziale e solo i commenti che iniziano con #1, #2 e #3 si applicano a questo esercizio della sfida

Output di esempio

  • Esaminare l'immagine animata seguente

    • Si noti la visualizzazione temporanea di "searching..." seguita dal termine corrente (ad esempio: "searching...retriever")

    • Si noti che l'ordine in cui vengono visualizzati i termini nella ricerca è ora alfanumerico

    • Si noti che i messaggi per le corrispondenze rimangono (ad esempio: "Our dog lola is a chase match!")

      Screenshot animato di un esempio di un'applicazione che cerca descrizioni di cani con quattro termini forniti dall'utente.

  • Esaminare l'output di esempio nella sezione seguente, "Come controllare il lavoro", per chiarire ulteriormente come implementare le funzionalità

Come controllare il lavoro

Per verificare che il codice soddisfi i requisiti specificati, completare la procedura seguente:

  1. Usare Visual Studio Code per compilare ed eseguire l'app.

Annotazioni

È possibile uscire dal test di verifica prima di aver completato tutti i passaggi di verifica se un risultato non soddisfa i requisiti delle specifiche. Per forzare l'uscita dal programma in esecuzione, premere CTRL+C nel pannello del terminale. Dopo essere usciti dall'app in esecuzione, completare le modifiche che si ritiene possano risolvere il problema a cui si sta lavorando, salvare gli aggiornamenti nel file Program.cs e quindi ricompilare ed eseguire il codice.

  1. Il prompt dei comandi del terminale deve essere visualizzato come punto di partenza per il programma

  2. Alla riga di comando, immettere 2 menu:

    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. Al prompt dei comandi, immettere large, cream, golden per verificare quando più di un termine di ricerca corrisponde alle descrizioni dei cani. Verificare che il pannello Terminale si aggiorni con un messaggio simile all'esempio di output del codice:

    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. Al prompt dei comandi premere il tasto INVIO per continuare con il menu principale

  5. Alla riga di comando, immettere 2 menu:

    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. Al prompt dei comandi immettere righe, grande, grigio, per verificare quando nessuno dei termini di ricerca corrisponde alle descrizioni dei cani. Verificare che il pannello Terminale si aggiorni con un messaggio simile agli esempi di output del codice:

    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. Se hai specificato ulteriori restrizioni per le voci valide, esegui i casi di test appropriati per verificare il tuo lavoro.

Annotazioni

Se il codice soddisfa i requisiti, è necessario poter completare ogni passaggio nell'ordine e visualizzare i risultati previsti in un singolo passaggio di test. Se sono state aggiunte restrizioni aggiuntive, potrebbe essere necessario uscire dall'applicazione e quindi eseguire un passaggio di test separato per completare la verifica.

Congratulazioni se hai avuto successo in questo esercizio di sfida!