在C#中高效解析大型文本文件

Chr*_*sCa 6 c# algorithm parsing text-processing

我需要读取一个空间分隔的大文本文件,并计算文件中每个代码的实例数.从本质上讲,这些是运行一些实验数十万次的结果.系统会吐出一个看起来像这样的文本文件:

A7PS A8PN A6PP23 ...
Run Code Online (Sandbox Code Playgroud)

实际上有数十万个这样的条目,我需要计算每个代码的出现次数.

我想我可以打开一个StreamReader并逐行浏览,拆分空格字符.查看是否已遇到代码并将该代码的计数加1.但是,考虑到数据的大小,这可能很幼稚.

有人知道处理这种处理的有效算法吗?

更新:

好的,所以共识似乎是我的方法是沿着正确的方向

我有兴趣听到的是 - 更有效的 - StreamReader.TextReader,BinaryReader

存储结果字典的最佳结构是什么?HashTable,SortedList,HybridDictionary

如果文件中没有换行符(我还没有给出样本),那么将整个空间分割成效率是不是很低?

从本质上讲,我期待尽可能提高性能

再次感谢

Car*_*rra 5

你的方法看起来很好.

  1. 每行读入
  2. 按空格分割每一行
  3. 如果记录尚不存在,则将其添加到字典中,如果它存在,则执行值++