Olá, o meu código está exatamente igual ao do curso. Depurei a aplicação e na terceira iteração do while ele não passa valor nenhum para o vetor.
partial class Program
{
static void UsarStreamReader()
{
var enderecoDoArquivo = "contas.txt";
using (var fluxoDoArquivo = new FileStream(enderecoDoArquivo, FileMode.Open))
using (var leitor = new StreamReader(fluxoDoArquivo))
{
while (!leitor.EndOfStream)
{
var linha = leitor.ReadLine();
var contaCorrente = ConverterStringParaContaCorrente(linha);
var msg = $"{contaCorrente.Titular.Nome} conta numero{contaCorrente.Numero},ag, {contaCorrente.Agencia}, saldo {contaCorrente.Saldo}";
Console.WriteLine(msg);
//Console.WriteLine(linha);
}
}
}
static ContaCorrente ConverterStringParaContaCorrente(string linha)
{
var campos = linha.Split(',');
var agencia = campos[0];
var numero = campos[1]; (o erro estoura aqui na terceira iteração do while)
var saldo = campos[2].Replace('.', ',');
var nomeTitular = campos[3];
var agenciaComoInt = int.Parse(agencia);
var numeroComoInt = int.Parse(numero);
var saldoComoDouble = double.Parse(saldo);
var titular = new Cliente();
titular.Nome = nomeTitular;
var resultado = new ContaCorrente(agenciaComoInt, numeroComoInt);
resultado.Depositar(saldoComoDouble);
resultado.Titular = titular;
return resultado;
}
}
Saida:
Jonatan Silva conta numero4644,ag, 375, saldo 2483,13
Debora conta numero4020,ag, 234, saldo 2822,52
Ao meu ver o vetor está assumindo o valor do indice "campos[1]", isso justifica a saida. Não intendo porque ele não lê o arquivo completo. Poderia ajudar-me?