如何管理大型数据表?

3
由于某些原因(即:不是我的决定),我需要在一个DataTable中保留大量行,约90,000行,并且我不能使用数据库。
我需要能够高效地搜索DataTable以找到符合一些基本条件的行。例如,我可能正在查看具有特定两列中值为2的行。
最佳方法是什么?
编辑:请查看https://chat.stackoverflow.com/transcript/message/62648#62648以获取更多详细信息;在我完成这个问题之后,我将尝试总结聊天中的额外细节并提供我的解决方案。

2
你还有什么限制吗?例如.NET 2.0?你可以使用LINQ吗? - jcolebrand
你是在询问如何持久化数据(Access、Excel、平面文件),还是如何高效地查询数据?你是每次应用程序运行时都要构建这个 DataTable,还是需要将其持久化到某个地方? - Dismissile
也许你有内存问题,但是做你想做的事情,如果有问题就谈论它。 - Saeed Amiri
对于那些在家里跟进(仅限静态SO)的人,您可能想要查看聊天记录中讨论此事的文字记录(这可能会使事情更容易消化?http://chat.stackoverflow.com/transcript/message/62648#62648),因此它归结为没有LINQ和没有有趣的东西。在DataTable上进行基本的.NET 4.0数据处理。 - jcolebrand
@Dismissile,我正在从一个平面文件中每次运行程序构建 DataTable。 - user50858
2个回答

6

根据需求,这是唯一的方法来完成此任务。 - NotMe
处理每行多个选择条件时,这是正确的,但不是完整的解决方案。 - user50858
@Angelina - Select方法支持多个筛选条件的AND语法。您可以在http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx上阅读有关完整支持语法的信息。 - Justin Niessner

1
我最终用于这个尴尬又不便的情况的解决方案是使用 DataTable.Select(),填充一个新的 DataTable,然后使用同样的操作从精选的 DataTable 中选择所需行。
我认为这个解决方案很笨拙,但问题的限制有些不现实,因为我时间紧迫。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接