如何在C#中保存大量数据?

时间:2010-04-06 23:55:16

标签: c#

我正在用C#编写一个程序,它将节省大量数据点,然后再制作图表。保存这些要点的最佳方法是什么?

我可以使用一个非常长的数组,还是应该使用文本文件或excel文件或类似的东西?


其他信息:它可能不会超过几千。如果我可以从Windows移动应用程序访问它会很好。基本上,用户将能够节省发生某些事情的时间,然后应用程序将使用该数据来查找互相关。

5 个答案:

答案 0 :(得分:2)

如果它是数百万甚至数千条记录,我可能会考虑使用数据库。您可以免费获得SQL Server 2008 Express,或者使用MySQL或类似的东西。

如果你走这条路,LINQ to SQL使得数据库访问在.NET中变得轻而易举。实体框架也可用,但LINQ to SQL可能需要更快的实施时间。

答案 1 :(得分:2)

如果您使用文本文件或excel文件等,您仍需要将它们加载回内存以绘制图形。

因此,如果您要在很长一段时间内收集数据,或者您希望将来某个时间绘制图表,请将它们写入纯文本文件。当您准备好绘制图形时,请加载文件并绘制图形。

如果数据收集在很短的时间内,请不要费心写入文件 - 它只会为流程添加步骤。

答案 2 :(得分:2)

执行此操作的一种非常简单的方法是将对象列表序列化为BinaryWriterXMLWriter ,这会自动将数据格式化为可读写的格式,以便当你的程序需要加载数据时,你所要做的就是反序列化它(1行代码)。

或者,如果您有很多记录,我建议尝试使用数据库。将C#与SQL Server(有一个名为Express Edition的免费版本)或MySQL连接起来非常容易,存储和检索大量数据并不是一件痛苦的事。这将是完成任务的最有效方式。

根据您拥有的数据量以及是否希望通过1行代码(序列化)或与单独产品(数据库方法)的接口来完成此类操作,您可以选择上述任一项。当然,如果您愿意,您可以按照建议手动将数据内容手动写入文本文件或CSV文件,但从个人经验来看,我推荐上面介绍的方法。

答案 3 :(得分:1)

它可能不会超过几千。如果我可以从Windows移动应用程序访问它会很好。基本上,用户将能够节省发生某些事情的时间,然后应用程序将使用该数据来查找互相关。

答案 4 :(得分:0)

是否需要与其他流程进行互操作?如果是这样,是时候采用文件格式了。

然而,从它的声音来看,你问的是“风格”问题,除了你自己的应用程序之外没有真正要求在任何地方打开文件。我建议使用BinaryWriter来完成任务。

如果调试是一个问题,那么人类可读的格式可能更可取,但会比二进制等效格式大得多。

最快的方法可能就是使用binary serialization