|
|
1
5
你可以用一个 trie 持有字符串列表;尝试是为快速重新设计而设计的 特里亚 瓦尔,给你 one example 在C#中实现trie的方法。 : Powerpoint presentation on folded tries for Unicode 和 Ifo on implementation of a folded trie for Unicode (not C#) |
|
|
2
3
|
|
4
2
重新考虑你的“当清单很小”问题;如果您不介意使用非泛型集合,
否则你也许可以用
|
|
|
5
2
也许是 HybridDictionary 这是一个更好的选择。其内部用途取决于集合中的项目数量。 |
|
|
6
2
我最终做了这样的事:
我猜你可以为它创建一个扩展方法
|
|
|
7
0
另一方面,如果内存可用,则在构造字符串时,它的HashValue将被预计算并与字符串一起存储,作为这种类型用例的优化。如果您使用的是字符数组或StringBuilder,这显然不适用,但对于不可变的字符串应该适用。 编辑:我错了。。。Java会缓存字符串的哈希代码,而C#不会。 |
|
|
8
0
在构建列表时,必须存储所需字符串的内部格式(
这将导致对每个列表进行四字节比较,并对原始字符串进行一次传递。字符串的intern池是专门为快速字符串比较和查找是否已经存在而构建的,因此intern操作应该非常快。 |