1
resposta

C# : trabalhando com arquivos - convertendo o texto para a conta - error System.IndexOutOfRangeException

Pessoal, estou com o seguinte problema. Quando eu vou chamar o método ConverterStringParaContaCorrente(linha); aparece o erro :

Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.

O método está assim :

 static ContaCorrente ConverterStringParaContaCorrente(string linha)
    {
        var campos = linha.Split(' ');

        var agencia = campos[0];
        var numero = campos[1];
        var saldo = campos[2];
        var nomeTitular = campos[3];

        var agenciaInteiro = int.Parse(agencia);
        var numeroInteiro = int.Parse(numero);
        var saldoDouble = double.Parse(saldo);

        var titular = new Cliente();
        titular.Nome = nomeTitular;


        var resultado = new ContaCorrente(agenciaInteiro, numeroInteiro);
        resultado.Depositar(saldoDouble);
        resultado.Titular = titular;

        return resultado;
    }

Alguém sabe o que há de errado com o array e como posso solucionar?

1 resposta

Olá Beatriz tudo bom? sou estudante e vou tentar ajudar, essa exceção "System.IndexOutOfRangeException" significa que você está tentando acessar um item de coleção por índice, usando um índice inválido. Um índice é inválido quando é menor que o limite inferior da coleção ou maior ou igual ao número de elementos que ele contém. Provavelmente o argumento "linha" da sua função

static ContaCorrente ConverterStringParaContaCorrente(string linha)

deve estar com dados inválidos ou incompletos, verifique se linha esta passando realmente uma string com vários espaços entre os dados para que o split funcione, acredito que no mínimo 4 palavras ex "agencia numero saldo nomeTitular"

espero ter ajudado, bons estudos!