1
resposta

[Dúvida] Como mudar o saldo das contas para testas?

Tentei responder o exercício com a seguinte implementação:

public void VerificarMaiorSaldo()
{
    var rankDeSaldos = _itens.OrderByDescending(cc => cc.Saldo).ToArray();
    var maiorSaldo = rankDeSaldos[0];
    Console.WriteLine($"O maior saldo é {maiorSaldo.Saldo} da conta {maiorSaldo.Conta}");
}

Ele parece estar funcionando, mas como o saldo de todas as contas criadas é 0 não tenho como saber. Como faço para aumentar o saldo das contas? O método Adicionar() cria contas com saldo 0 e eu não consigo acessar contas individuais para usar o método Depositar().

1 resposta

Oi, Willian! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

O seu método tá bem implementado, e a lógica de ordenação por saldo tá correta.

Você pode resolver isso acessando diretamente os elementos do array _itens e fazendo depósitos manuais, como neste exemplo:


_itens[0].Depositar(1000);
_itens[1].Depositar(2500);
_itens[2].Depositar(800);

Esse trecho assume que o array _itens tem pelo menos 3 contas adicionadas. Assim, ao rodar o seu método VerificarMaiorSaldo(), você verá qual das contas tem o maior saldo.

Código completo que usei para testes:

  • Class ContaCorrente
using System;
using System.Linq;

public class ContaCorrente
{
    public string Conta { get; set; }
    public double Saldo { get; private set; }

    public ContaCorrente(string conta)
    {
        Conta = conta;
        Saldo = 0;
    }

    public void Depositar(double valor)
    {
        Saldo += valor;
    }
}

public class Banco
{
    private ContaCorrente[] _itens;

    public Banco()
    {
        _itens = new ContaCorrente[]
        {
            new ContaCorrente("001-X"),
            new ContaCorrente("002-X"),
            new ContaCorrente("003-X")
        };

        // Depósitos para teste
        _itens[0].Depositar(1000);
        _itens[1].Depositar(2500);
        _itens[2].Depositar(800);
    }

    public void VerificarMaiorSaldo()
    {
        var rankDeSaldos = _itens.OrderByDescending(cc => cc.Saldo).ToArray();
        var maiorSaldo = rankDeSaldos[0];

        Console.WriteLine($"O maior saldo é {maiorSaldo.Saldo} da conta {maiorSaldo.Conta}");
    }
}
  • Class Program
class Program
{
    static void Main()
    {
        Banco banco = new Banco();
        banco.VerificarMaiorSaldo();
    }
}

Esse código cria 3 contas, faz depósitos diferentes em cada uma, e o método VerificarMaiorSaldo() identifica e exibe aquela com maior valor.

Espero ter ajudado.

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