gpt4 book ai didi

c# - 将 DataTable 转换为 CSV 的最有效方法

转载 作者:可可西里 更新时间:2023-11-01 07:51:30 25 4
gpt4 key购买 nike

我正在使用 DataTable,我需要将它们转换为 CSV 文件格式。我正在使用的大多数表都有超过 50,000 条记录,因此我尽量减少转换它们所需的时间。

这是我目前的方法:

    public static string table_to_csv(DataTable table)
{
string file = "";

foreach (DataColumn col in table.Columns)
file = string.Concat(file, col.ColumnName, ",");

file = file.Remove(file.LastIndexOf(','), 1);
file = string.Concat(file, "\r\n");

foreach (DataRow row in table.Rows)
{
foreach (object item in row.ItemArray)
file = string.Concat(file, item.ToString(), ",");

file = file.Remove(file.LastIndexOf(','), 1);
file = string.Concat(file, "\r\n");
}

return file;
}

有什么办法可以提高这种方法的效率吗?欢迎提出任何修改和想法!

最佳答案

使用 System.Text.StringBuilder对于巨大的字符串 - 这非常快。我实现了这个:

public static string DataTableToCSV(this DataTable datatable, char seperator)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < datatable.Columns.Count; i++)
{
sb.Append(datatable.Columns[i]);
if (i < datatable.Columns.Count - 1)
sb.Append(seperator);
}
sb.AppendLine();
foreach (DataRow dr in datatable.Rows)
{
for (int i = 0; i < datatable.Columns.Count; i++)
{
sb.Append(dr[i].ToString());

if (i < datatable.Columns.Count - 1)
sb.Append(seperator);
}
sb.AppendLine();
}
return sb.ToString();
}

关于c# - 将 DataTable 转换为 CSV 的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com