2
respostas

Buscando em uma lista: Resolução alternativa com try-catch

List<string> Nomes = new List<string> {"Ana", "Carlos", "Bianca", "João", "Marina" };
int contador = 0;
Console.WriteLine("Digite um nome da lista:");
string entrada = Console.ReadLine()!;
try{
    while (contador <= Nomes.Count)
    {

        if (Nomes[contador] == entrada)
        {
            Console.WriteLine($"Aluno encontrado na posição {Nomes.LastIndexOf(entrada)}");
            break;
        }
        else
        {
            contador++;
        }
    }
}catch(System.ArgumentOutOfRangeException)
    {
        Console.WriteLine("Aluno não está presente na lista");
    }
    ```
2 respostas

Oi, Matheus! Como vai?

Você fez um bom uso do try-catch para controlar a busca na lista, o que mostra iniciativa em tratar exceções, mesmo em um exercício focado em laços de repetição. Sua lógica de percorrer a lista com while faz sentido e demonstra entendimento do fluxo.

Uma dica interessante para o futuro é usar o método Contains para verificar se um item existe na lista antes de acessar posições. Veja este exemplo:


if (Nomes.Contains(entrada))
{
    Console.WriteLine("Aluno encontrado na lista");
}
else
{
    Console.WriteLine("Aluno não está presente na lista");
}

Esse código verifica se o nome digitado existe na lista e evita exceções por acesso fora do índice.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

@Amaro, bom dia!

Obrigado pela sua avaliação! Agradeço também pela dica na utilização do método Contains.

Atenciosamente!