我有一个DataTable
可以放置数十万条记录的文件。这是一个巨大的内存开销,所以我添加了一个功能,用户只能在我的应用程序中可视化前 200 条记录,并且可以将其余结果导出到 CSV 文件。
但是,为了导出到 CSV 文件,我使用的方法是将 a 的内容转换为DataTable
CSV 文件。由于我可以在 DataTable 中有超过 100K 的记录,我认为将所有记录放入 DataTable 并映射到 CSV 文件会占用太多内存。会推荐什么方法?这是我的 CSV 映射代码:
StringBuilder builder = new StringBuilder();
IEnumerable<string> columnNames = dtResults.Columns.Cast<DataColumn>().Select(column => column.ColumnName);
builder.AppendLine(string.Join(",", columnNames));
foreach (DataRow row in dtResults.Rows)
{
IEnumerable<string> fields = row.ItemArray.Select(field => DisplayCommas(field.ToString()));
builder.AppendLine(string.Join(",", fields));
}
File.WriteAllText(filename, builder.ToString());