Error: System.Indexoutofrangeexception: 'The index was outside the matrix boundary. '

Asked

Viewed 20 times

0

public static List<Cliente> LerClientes()
        {
            var clientes = new List<Cliente>();
            if (File.Exists(CaminhoBaseClientes()))
            {
                using (StreamReader file = File.OpenText(CaminhoBaseClientes()))
                {
                    string line;
                    int i = 0;
                    while ((line = file.ReadLine()) != null)
                    {
                        i++;
                        if (i == 1) continue;
                        var clienteArquivo = line.Split(';');

                        var cliente = new Cliente(clienteArquivo[0], clienteArquivo[1], clienteArquivo[2], clienteArquivo[3], clienteArquivo[4], clienteArquivo[5], clienteArquivo[6]); // Erro está aqui: System.IndexOutOfRangeException: 'O índice estava fora dos limites da matriz.'
                        clientes.Add(cliente);
                    }
                }
            }

            return clientes;
        }
//Não consigo resolver esse problema.
//Ele adiciona o cliente de um arquivo .txt na list, retorna ao While e ai sim dá o erro descrito na linha em questão.        

//Construtor Usado
public Cliente(string nome, string email, string data, string cpf, string cidade, string estado, string endereco)
        {
            this.Nome = nome;
            this.Email = email;
            this.Data = data;
            this.CPF = cpf;
            this.Cidade = cidade;
            this.Estado = estado;
            this.Endereço = endereco;
        }

  • Without knowing your file it is impossible to point out the error, but it occurs because some (s) line(s) does not have all the expected content.

  • You could check the customer sizeFile and display an error message if it is less than 7, stating the line with problem.

  • Thank you. I’ve solved the problem.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.