2010-01-10 8 views
0

J'ai un fichier texte qui contient des colonnes de données qui sont soit entier, double ou chaîne. Je veux lire chaque rangée de données dans ma propre classe d'enregistrement. Je connais les types de données de colonne à l'avance, donc je suis en train d'analyser une ligne de fichier texte quelque chose comme le code ci-dessous (je l'ai tapé, alors ne vous plaignez pas il y a des erreurs). Je n'ai pas listé toutes les colonnes, donc l'instruction switch aurait 74 cas. Je ne sais pas si c'est la meilleure façon d'y arriver. Quelle est la meilleure façon de faire cela? En outre, il doit être rapide que possible.Lire le fichier texte dans la classe de données personnalisée

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); 

Répondre

3

Avez-vous vraiment besoin de cela switch? Et à propos de:

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]); 
+0

Votre droit! Je ne sais pas ce que je pensais. <- se sent bête maintenant. –

+0

Si vous travaillez sur ce dimanche, je peux le comprendre =) –