Olá, Criei uma solução utilizando os métodos Where() e Contains(), e após isso passo os resultados para uma lista, assim posso pesquisar por um sobrenome e ver os resultados. Fica o código abaixo com o output:
void ProcurarPorNome(string nomeProcurado, List<string> listaDeNomes)
{
//" daniel portugal " -> "daniel portugal"
nomeProcurado = Regex.Replace(nomeProcurado.Trim(), @"\s+", " ");
//separa todos os resultados compativeis na lista "resultados"
var resultados = listaDeNomes.Where(n => n
.Contains(nomeProcurado, StringComparison.OrdinalIgnoreCase))
.ToList();
//verifica se a lista está vazia
if (resultados.Count <= 0 || resultados == null)
{
Console.WriteLine($"O nome \"{nomeProcurado}\" não foi encontrado!");
}
else
{
Console.WriteLine($"O nome \"{nomeProcurado}\" foi encontrado! Segue abaixo o que encontramos:");
//exibe os nomes encontrados na pesquisa
foreach (var nome in resultados)
{
Console.WriteLine(nome);
}
}
}
ProcurarPorNome(" wayne ", nomesDosEscolhidos);
Output:
O nome "wayne" foi encontrado! Segue abaixo o que encontramos:
Bruce Wayne
Anakin Wayne