我正在使用csvhelper将数据写入csv文件。我正在使用C#和VS2010。我想写的对象是类型为Dictionary< long,List<HistoricalProfile>>
以下是我用来将数据写入csv文件的代码:
Dictionary<long, List<HistoricalProfile>> profiles
= historicalDataGateway.GetAllProfiles();
var fileName = CSVFileName + ".csv";
CsvWriter writer = new CsvWriter(new StreamWriter(fileName));
foreach (var items in profiles.Values)
{
writer.WriteRecords(items);
}
writer.Dispose();
当它第二次循环时出现错误
标题记录已经写好了。你不能多次写它。
你能告诉我这里做错了吗?我的最终目标是拥有一个包含大量记录的单个csv文件。
提前致谢!
答案 0 :(得分:2)
您是否看过这个库http://www.filehelpers.net/这使得读取和写入CSV文件非常容易
那么你的代码就是
var profiles = historicalDataGateway.GetAllProfiles(); // should return a list of HistoricalProfile
var engine = new FileHelperEngine<HistoricalProfile>();
// To Write Use:
engine.WriteFile("FileOut.txt", res);
答案 1 :(得分:-4)
我会更低级别,并自己遍历集合:
var fileName = CSVFileName + ".csv";
var writer = new StreamWriter(fileName);
foreach (var items in profiles.Values)
{
writer.WriteLine(/*header goes here, if needed*/);
foreach(var item in items)
{
writer.WriteLine(item.property1 +"," +item.propery2...);
}
}
writer.Close();
如果您想使例程更有用,您可以使用反射来获取您希望写出的属性列表,并从那里构建您的记录。