Domanda

Ho un file di testo che contiene le colonne di dati che sono o interi, doppia o una stringa. Voglio leggere ogni riga di dati nella mia classe record. So che i tipi di dati di colonna in anticipo, quindi sono l'analisi di un file di testo fila qualcosa come il codice qui sotto (ho digitato fuori, quindi non mi lamento ci sono errori). Io non elencare tutte le colonne, così l'istruzione switch avrebbe 74 casi. Non so se in questo modo il migliore per andare su di esso. Che cosa è un modo migliore per fare questo? Inoltre, ha bisogno di essere più veloce possibile.

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);
È stato utile?

Soluzione

Non si ha davvero bisogno che switch? Che dire:

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]);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top