【发布时间】:2015-01-03 14:37:21
【问题描述】:
我有一个 CSV 文件,其中列出了各种数据(日期时间、十进制)。来自 CSV 的示例行:
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
我有一个创建的对象列表,我想将每一行读入其中。对象的构造函数如下,每个 CSV 行中的每个字段都在此处使用和分配。
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>();
有没有一种简单的方法可以将 CSV 的每一行读入我的列表 values 并适当地分配每个属性(即日期、开放、高)?
【问题讨论】:
-
TextFieldParser类隐藏在Microsoft.VisualBasic.FileIO命名空间中。即使它说 VisualBasic,你也可以将它与 C# 一起使用。 -
我会通过 Linq 执行此操作 - 请参阅此帖子:stackoverflow.com/questions/3497699/csv-to-object-model-mapping
-
@Kevin 这不完全符合 CSV 规范。如果数据中存在任何包含逗号的数据,则会出现问题
-
@cost - 我完全同意,但查看示例数据我认为没有问题。