Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Minha solução comentada (e com uns frufruzinhos) caso você tenha dificuldades:

Antes de começar só aviso que os comentários explicando ficaram bem longos, porém foi para deixar tudo bem entendível. É melhor um livro grande legível, a uma cartilha que só Scooby-Doo e amigos conseguem desvendar kkkkk bons estudos pessoal!

using bytebank_ATENDIMENTO.bytebank.Atendimento;
using System.Text.RegularExpressions;
Console.WriteLine("Boas Vindas ao ByteBank, Atendimento.");

void PesquisaTeste()
{
    Console.WriteLine("\nTítulo para busca de nomes muito irado Wow\n");

    //Afim de polpar as nossas queridas teclas do teclado, vou declarar os nomes aqui já.
    string[] nomes =
    {
        "Nicolas",
        "João",
        "Felipe",
        "Daniel Portugal", //#vv volta vida
        "Guilherme Lima", //duplinha do barulho 
    };

    Console.Write("Digite um nome: ");
    string nome = Console.ReadLine()!; //Afins de exemplos, vamos imaginar que o input original tenha sido "DaNiEl        pOrTUgAl    "

    //Vamos lá, aqui ocorrem várias formatações para assegurar que o nome digitado irá ser corretamente (nunca desacredite na habilidade do usuário em quebrar algo). Irei explicar cada uma.
    nome = Regex.Replace(nome, @"\s+", " "); //Calma, não é um demônio de sete cabeças, o que este codigo faz é quase o mesmo que o string.Replace comum. A grande jogada do Regex.Replace é que você pode usar o shorthand "/s" (basicamente um código para simbolizar o espaço), junto do "+", que extende até o máximo de espaços sequenciais, assim você pode substituir x espaços por um único. "DaNiEl        pOrTUgAl    " -> "DaNiEl pOrTUgAl "
    nome = nome.Trim(); //Remove os espaços (caso exista) antes e depois do nome. "DaNiEl pOrTUgAl " -> "DaNiEl pOrTUgAl"

    //Aqui ocorrem mais duas verificações para ter certeza que a busca irá acontecer corretamente, sendo uma acompanhada de uma condição (ou talvez podemos chamar de descondição haha). Enfim, irei falar sobre elas também.
    //"!string.IsNullOrWhiteSpace(nome)" -- Faz literalmente o que o nome dela diz. Notem que há um símbolo de exclamação antes da verificação, que basicamente inverte ela. Ou seja, se a função original dela era retornar 'true' caso a string "nome" fosse vazia, agora ela retorna 'false'. Isso evita que o programa crashe verificando um input inválido, como null ou "".
    //"nomes.Contains(nome, StringComparer.CurrentCultureIgnoreCase)" -- Aqui temos a tal da verificação acompanhada de uma condição. A função .Contains() você já deve conhecer nesse nível do campeonato, mas talvez não conheça "StringComparer.CurrentCultureIgnoreCase". O que isto faz é basicamente avisar a função .Contains(), que pouco importa se o input tem letras maiúsculas ou minúsculas, será tudo a mesma coisa. "DaNiEl pOrTUgAl" == "Daniel Portugal".
    if (!string.IsNullOrWhiteSpace(nome) && nomes.Contains(nome, StringComparer.CurrentCultureIgnoreCase))
    {
        //Console.WriteLine($"\no nome {nome} consta em nossa base de dados!");
        //Caso queira exibir o nome igual do banco de dados, e assim exibir "Daniel Portugal" no lugar de "DaNiEl pOrTUgAl":
        //Obs: O "n" neste caso desta função lambda, simboliza cada string do array"
        Console.WriteLine($"\no nome {nomes.FirstOrDefault(n => String.Equals(n, nome, StringComparison.CurrentCultureIgnoreCase))} consta em nossa base de dados!");
    }
    else
    {
        Console.WriteLine($"\no nome {nome} não consta em nossa base de dados!");
    }
}

PesquisaTeste();
1 resposta
solução!

Olá Nicolas, como vai?

Que bom que você realizou a atividade, é isso aí! Espero que continue se dedicando aos estudos e colocando em prática seus aprendizados.

Caso surja alguma dúvida, fico à disposição.

Abraços e bons estudos!