Pergunta

Eu tenho um arquivo de texto que contém colunas de dados que são ou inteiro, duplo ou string. Eu quero ler cada linha de dados em minha própria classe de registro. Eu sei que os tipos de dados da coluna de antemão, então eu estou analisando uma linha algo arquivo de texto como o código abaixo (eu digitei-lo, por isso não se queixam há erros). Eu não listar todas as colunas, por isso, a instrução switch teria 74 casos. Eu não sei se esta a melhor maneira de ir sobre ele. O que é uma maneira melhor de fazer isso? Além disso, ele precisa ser rápido possível.

List<record> records = new List<record>();

string[] split = textRow.Split(new string { "," }, StringSplitOptions.None);
record = new Record();
for (int i=0;i<split.Length;i++)
{      
   switch (i)
   {
      case 0: 
         record.ID = Convert.ToInt32(split[0]);
         break;
      case 1:
         record.Name = split[1];
         break;
      case 2:
         record.Rate = Convert.ToDouble(split[2]);
         break;
      case 3:
         record.Price = Convert.ToDouble(split[3]);
         break;
      case 4:
         record.Rank = Convert.ToInt32(split[4]);
         break;

   }
}

records.Add(record);
Foi útil?

Solução

Você realmente precisa que switch? Que tal:

string[] split = textRow.Split(new string { "," }, StringSplitOptions.None);
record = new Record();
record.ID = Convert.ToInt32(split[0]);
record.Name = split[1];
record.Rate = Convert.ToDouble(split[2]);
record.Price = Convert.ToDouble(split[3]);
record.Rank = Convert.ToInt32(split[4]);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top