使用CSV助手将集合的集合写入CSV文件
本文关键字:集合 CSV 文件 使用 | 更新日期: 2023-09-27 18:10:31
我使用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文件。头记录已经被写入。你不能多写一次。
提前感谢!
您见过这个库吗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);
我会更低级,自己遍历集合:
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();
如果你想让这个例程更有用,你可以使用反射来获得你想要写出来的属性列表,并从那里构造你的记录。