3 Aula = Fazendo parse e StreamWrite - Convertendo o texto para conta ao rodar o projeto.
Ao rodar a aplicação, eu estava convertendo cada linha do arquivo de texto em uma conta. Porém, recebi o erro IndexOutOfRangeException ao acessar campos[2].
static ContaCorrente ConverterStringParaContaCorrente(string linha)
{
// 375 4644 2483.13 Jonatan
var campos = linha.Split(' ');
var agencia = campos[0];
var numero = campos[1];
var saldo = campos[2]; // Erro apresentado - IndexOutOfRangeException
var nomeTitular = campos [3];
var resultado = new ContaCorrente(agencia, numero);
resultado.Depositar(saldoComDouble);
resultado.Titular = titular;
return resultado;
}
No começo eu achei que era por causa de espaços extras na linha, mas ao verificar o conteúdo real do arquivo, percebi que os dados não estavam separados por espaço e sim por vírgula. Por isso, o Split(' ') não estava dividindo a linha corretamente e o array ficava com menos posições que o esperado.
O código original era: var campos = linha.Split(' ');
Trecho modificado para var campos = linha.Split(',');
Depois disso, o método passou a funcionar normalmente e o erro desapareceu e consegui compilar e seguir a aula normalmente.