1
resposta

Desafio criar umm função para identificar a conta com maior saldo:

a solução que encontrei foi essa aqui: teria um caminho mais fácil? public void ExibeContaComMaiorSaldo() { double maiorSaldo = _itens.Max(c => c.Saldo); ContaCorrente[] contasComMaiorSaldo = _itens.OrderByDescending(c => c.Saldo).Where(c => c.Saldo == maiorSaldo).ToArray();

if (contasComMaiorSaldo.Length > 0)
{
    Console.WriteLine($"A conta com maior saldo é {contasComMaiorSaldo[0].Conta}");
}
else
{
    Console.WriteLine("Não há contas na lista.");
}

}

1 resposta

Olá, Cristhyan.

Tudo bem?

Muito obrigado por compartilhar a sua solução, e parabéns por se dedicar e tentar fazer. Top!

Sobre o desafio: Uma alternativa para otimizar seu método poderia ser encontrar a conta com o maior saldo diretamente, sem necessidade de ordenar todas as contas e depois filtrar. Isso pode ser feito utilizando o método Aggregate para comparar diretamente os saldos e identificar a maior conta em uma única passagem. Aqui está um exemplo de como você poderia implementar isso:

public void ExibeContaComMaiorSaldo()
{
    if (_itens == null || _itens.Length == 0)
    {
        Console.WriteLine("Não há contas na lista.");
        return;
    }

    ContaCorrente contaComMaiorSaldo = _itens.Aggregate((conta1, conta2) => conta1.Saldo > conta2.Saldo ? conta1 : conta2);

    Console.WriteLine($"A conta com maior saldo é {contaComMaiorSaldo.Conta}");
}

Neste código, o método Aggregate percorre todos os itens da lista _itens, comparando dois a dois, e sempre passa para a próxima comparação a conta com o maior saldo encontrado até então. No final, contaComMaiorSaldo será a conta com o maior saldo dentre todas as contas na lista.

É só uma sugestão para tornar seu código mais direto e eficiente! Espero ter ajudado e bons estudos!