Arquivos do Blog

Ler aquivo TXT e armazenar em um List C#

Olá!

Hoje vou mostrar uma maneira simples de ler um Arquivo *.txt utilizando a Classe System.IO.File e armazenar seu conteúdo em um List<Cliente> com a linguagem C#, fazendo uso do método String.Split para “quebrar” a string.

Para este exemplo crie um arquivo *.txt e salve em “C:”.

Exemplo do arquivo txt

Exemplo do arquivo txt

Em seguida siga os seguintes passos:

using System;
using System.Collections.Generic;
using System.IO;

namespace LendoTxtArmazenandoList
{
    class Program
    {
        //classe Cliente e suas propriedades
        class Cliente
        {
            public int Id { get; set; }
            public string Nome { get; set; }
            public string Email { get; set; }
        }

        static void Main(string[] args)
        {
            //Instância da lista que será preenchida
            List<Cliente> lista = new List<Cliente>();

            //Retorna todas as linhas do arquivo em um array
            //de string, onde cada linha será um índice do array
            string[] array = File.ReadAllLines(@"C:\exemplo.txt");

            //percorro o array e para cada linha
            for (int i = 0; i < array.Length; i++)
            {
                //crio um objeto do tipo Cliente
                Cliente c = new Cliente();

                //Uso o método Split e quebro cada linha
                //em um novo array auxiliar, ou seja, cada
                //conteúdo do arquivo txt separado por '|' será
                //um nova linha neste array auxiliar. Assim sei que
                //cada índice representa uma propriedade
                string[] auxiliar = array[i].Split('|');

                //Aqui recupero os itens, atribuindo
                //os mesmo as propriedade da classe
                //Cliente correspondentes, ou seja,
                //o índice zero será corresponde ao Id
                //o um ao nome e o dois ao e-mail
                c.Id = Convert.ToInt32(auxiliar[0]);
                c.Nome = auxiliar[1];
                c.Email = auxiliar[2];

                //Adiciono o objeto a lista
                lista.Add(c);
            }

            //Para verificar o resultado percorro a lista
            //e exibo os valores recuparados pelo List<Cliente>
            foreach (var item in lista)
            {
                Console.WriteLine(@"Id: {0}; Nome: {1}; E-mail: {2};", item.Id, item.Nome, item.Email);
                Console.WriteLine(@"----------------------------------------------------------");
            }

            Console.ReadKey();
        }
    }
}

É isso ai até a próxima!!!