4

この質問は、CSV の解析に関するものではありません。

次のコードを使用して DataTable から CSV を作成します
が、遅いです
100 行 x 14 列は 4 秒
です もっと速い方法はありますか?

StringBuilder sb = new StringBuilder();
bool first = true;
int colCount = 0;
foreach (DataColumn dc in DT.Columns)
{
    if (first) first = false; else sb.Append(",");
    sb.Append("\"" + dc.ColumnName +  "\"");
    colCount++;
}
sb.AppendLine();
foreach (DataRow dr in DT.Rows)
{  
    first = true;
    for (int i = 0; i < colCount; i++)
    {
        if (first) first = false; else sb.Append(",");
        sb.Append("\"" + dr[i].ToString().Trim() + "\"");
    }
    sb.AppendLine();
}
return sb.ToString();

ここでは StringBuilder は問題ではありません。
i を 300 ミリ秒で 0 ~ 100 万回実行する

StringBuilder sb = new StringBuilder();
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 1000000; i++)
{
    sb.Append(i.ToString());
}
sw.Stop();
Debug.Write(sw.ElapsedMilliseconds.ToString());
4

2 に答える 2

-2

あなたが持っているものは「素晴らしい」コードではありません...ほとんどの人はCSVHelpernugetパッケージのようなものを使用することを提案すると思います。ただし、そのコードは、100行だけで4秒かかるコードではないことも言います。データテーブルのデータを取得するのにどのくらい時間がかかりますか?それが4秒のほとんどが費やされる場所だと思います。

于 2013-02-14T23:00:34.803 に答える