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());