【发布时间】:2012-12-29 20:04:24
【问题描述】:
请原谅我的菜鸟,但我只需要一些指导,我找不到另一个可以回答这个问题的问题。我有一个相当大的 csv 文件(约 300k 行),我需要确定给定输入,csv 中的任何行是否以该输入开头。我已经按字母顺序对 csv 进行了排序,但我不知道:
1) 如何处理 csv 中的行 - 我应该将其作为列表/集合读取,还是使用 OLEDB、嵌入式数据库或其他方式?
2) 如何有效地从按字母顺序排列的列表中查找内容(利用排序的事实来加快速度,而不是搜索整个列表)
【问题讨论】:
-
是否需要每次都重新加载文件,还是可以缓存在内存中,比如字典或哈希表中?
-
如果您不想编写 CSV 解析器,可以尝试 FileHelpers。请告诉我们这是否是一个特定的点解决方案,或者您是否需要一个通用的阅读器。实际上,您的问题有点……未指定。
-
@Steven Doggart 只要在某个时间点加载——数据就不会改变。
-
是的,我会查看 FileHelpers 或 Sebastian Lorien 的 Fast CSV Reader.。这是其他人已经很好解决的问题之一。
-
FileHelpers?为什么不直接使用属于 .NET 框架的 TextFieldParser 类?