0

我有可能在 wpf 的数据网格中填充的 50,000 个条目的列表。现在我想将列表中的数据保存到一个可能是文本的文件中,或者最好是 CSV。由于列表太大。有一个问题,我实现的方法可能是简单的文本文件写入或将内容从数据网格复制到剪贴板然后返回到字符串,然后使用 StreamReader 将该字符串复制到文件的方法。即使在后台工作人员中,它也会消耗大约 4-5 分钟。

有什么方法可以让我快速保存庞大的列表到文件中?

我在 WPF 中使用 DataGrid

代码

 dataGrid1.SelectAllCells();
            dataGrid1.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
            ApplicationCommands.Copy.Execute(null, dataGrid1);
   String result = (string)Clipboard.GetData(DataFormats.CommaSeparatedValue);


///Never reach to step Below thread stays on above line
                dataGrid1.UnselectAllCells();
                Clipboard.Clear();
                StreamWriter file = new System.IO.StreamWriter(SavePageRankToPDF.FileName);
                file.WriteLine(result);
                file.Close();
4

2 回答 2

2

与其使用剪贴板,不如遍历数据表并构建 csv 文件。

更新

这里有些例子:

将 DataTable 转换为 CSV 流

将 DataSet\DataTable 转换为 CSV

于 2011-03-22T20:49:43.730 回答
0

有帮助的一件事是在将所有数据用于显示目的时不要将所有数据加载到数据网格中。使用分页是个好主意:仅将数据加载到计算或显示所需的数据网格中。如果用户想要查看/使用更多数据,请返回您的数据源并获取更多数据。您的应用程序不仅运行速度更快,而且您将使用更少的内存。

于 2011-03-22T20:08:52.593 回答