如何以最少的复制和分配进行文字处理?

问题描述

我有一个 Span<byte> 保存字符缓冲区。缓冲区包含文本。我想计算每个单词的频率。如何在不使用字符串的情况下以最少的分配和复制来做到这一点? 使用字符串非常简单,我会将单词放在 Dictionary<string,int> 中,并允许我查看当前单词是否已经在集合中。

尝试使用结构如

ref struct Word
{
   public Span<byte> content;
   public int GetHashCode() {...}
   public bool Equals(Word other) {...}
}

不适用于字典,因为字典是在堆上分配的,而 ref 结构不是。我想使用一个集合来保存搜索时间少于 O(n) 的单词。

我不需要使用 Span 来保存单词。要求是:最少的分配和复制以及快速搜索

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)