Segue resolução desafio proposto para calcular o maior saldo do array de Conta Correntes.
Classe ListaDeContaCorrentes
internal class ListaDeContasCorrentes
{
private ContaCorrente[] _itens = null;
private int _proximaPosicao = 0;
public ListaDeContasCorrentes(int tamanhoInicial = 5)
{
_itens = new ContaCorrente[tamanhoInicial];
}
public void AdicionarContaCorrente(ContaCorrente conta)
{
VerificaCapacidade(_proximaPosicao + 1);
Console.WriteLine($"Adicionando conta na posição {_proximaPosicao}.");
_itens[_proximaPosicao] = conta;
_proximaPosicao++;
}
public void VerificaCapacidade(int tamanhoNecessario)
{
if(_itens.Length>=tamanhoNecessario)
{
return;
}
Console.WriteLine("Aumentando a capacidade da lista...");
ContaCorrente[] _novoItens = new ContaCorrente[tamanhoNecessario];
for (int i = 0; i < _itens.Length; i++)
{
_novoItens[i] = _itens[i];
}
_itens = _novoItens;
}
Função que retorna o maior saldo:
public void VerificaMaiorSaldo()
{
ContaCorrente? contaComMaiorSaldo = _itens[0];
for (int i = 0; i < _itens.Length; i++)
{
if (_itens[i].Saldo > contaComMaiorSaldo?.Saldo)
{
contaComMaiorSaldo = _itens[i];
}
}
Console.WriteLine($"A conta com maior saldo é de R${contaComMaiorSaldo?.Saldo}");
}