Ho un file CSV con un elenco di dati vari (datetime, decimal). Esempio di linea da CSV:Leggi CSV nell'elenco di oggetti
Date,Open,High,Low,Close,Volume,Adj Close //I need to skip this first line as well
2012-11-01,77.60,78.12,77.37,78.05,186200,78.05
Ho una lista di oggetti creati in cui voglio leggere ciascuna delle righe. Il costruttore per gli oggetti è sotto, ognuno dei campi di ciascuna linea CSV è usato e assegnato qui.
public DailyValues(DateTime date, decimal open, decimal high, decimal low,
decimal close, decimal volume, decimal adjClose)
: this()
{
Date = date;
Open = open;
High = high;
Low = low;
Close = close;
Volume = volume;
AdjClose = adjClose;
}
List<DailyValues> values = new List<DailyValues>();
C'è un modo semplice per leggere ogni riga del CSV in lista values
e opportunamente assegnare ciascun attributo (cioè data, aperto, alto)?
C'è una classe 'TextFieldParser' nascosta nello spazio dei nomi' Microsoft.VisualBasic.FileIO'. Anche se dice VisualBasic, puoi usarlo anche con C#. – cost
Lo farei tramite Linq - vedi questo post: http://stackoverflow.com/questions/3497699/csv-to-object-model-mapping – Kevin
@Kevin Che non è completamente conforme alle specifiche CSV. Ci sarebbero problemi se ci fossero dei dati che contenevano una virgola all'interno dei dati – cost