将linq查询导出到文本文件

时间:2015-10-09 11:55:55

标签: c# sql-server linq text

我想从linq查询中创建一个文本文件。 关键是我的查询每次产生超过 3000条记录,当我使用 foreach 时,需要2分钟来提取所有记录和字段数据。

foreach (var query3 in query)
{
    line += (string)query3.Name.Trim() +"\t"+(string)query3.Code.Trim()+"\n";
}

如何将linq查询导出到文本文件或字符串变量? 我的查询类似于:

var Query=from c in db.Exp select c;

1 个答案:

答案 0 :(得分:1)

当您执行大量字符串追加时,您不应该使用字符串。由于string是一个不可变对象,因此在每次迭代中都会分配一个新的内存块。您应该使用StringBuilder:

StringBuilder line = new StringBuilder();
foreach (var q2 in query)
{
    line.AppendFormat("{0}\t{1}\n", query3.Name.Trim(), query3.Code.Trim());
}
File.WriteAllText(@"...", line.ToString());