【发布时间】:2016-11-25 07:20:57
【问题描述】:
我有一个获取表格多行的进程。这些行需要在报告表中报告。我目前正在做的事情太慢了,因为行数太多(600.000
private void ShowNotFoundRows() {
report += "NOT FOUND - Rows";
report += "\r\n";
report += "In Current:";
report += "\r\n";
string Columns = "|";
foreach (string header in currentModel.Columns) {
Columns += header + "|";
}
report += Columns;
report += "\r\n";
foreach (string row in newModel.Keys) {
report += row + "\r\n";
}
report += "\r\n";
report += "In New:";
report += "\r\n";
report += Columns;
report += "\r\n";
foreach (string row in currentModel.Keys) {
report += row + "\r\n";
}
}
之后:
private void CreateReportFile() {
MyLog.WriteToLog("Creating ReportFile "+newModel.TableName, MyLog.Messages.Info);
string dir = Settings.Default.ReportFolder + "\\" + directoryName + " " + DateTime.Now.ToString("dd-MM-yyyy");
Directory.CreateDirectory(dir);
try {
File.WriteAllText(dir + "\\Report " + newModel.TableName, report);
} catch (DirectoryNotFoundException e) {
Console.WriteLine(e.Message + "\n" + e.StackTrace);
}
}
【问题讨论】:
-
您可以做的一件事是使用
StringBuilder,而不是进行如此多的字符串连接。您可能会看到这一微小变化的显着改善。