我对C#中的词典有一般性质疑。 假设我在一个文本文件中读取,将其拆分为键和值并将它们存储在字典中。 将它们全部放入单个字典或将其拆分为更小的字典会更有用吗? 它可能不会对小文本文件产生巨大影响,但其中一些文件有超过100.000行。 你会推荐什么?
答案 0 :(得分:6)
在尝试优化之前,第一条规则始终是基准测试。话虽这么说,有些人可能会为你做基准测试。检查results here
从文章中看(以防它从网上消失)
较小的词典(键数的一半)要快得多。 在这种情况下,两个字典对输入的行为是 相同。这意味着在词典中有不需要的键 让它变慢。
我的观点是你应该使用单独的词典 单独的目的。如果您有两组密钥,请不要存储它们 相同的词典。如果你可以将它们分开,你可以增强查找 性能
信用:dotnetperls.com
同样来自文章:
全字典:791毫秒
半角字典:591毫秒[更快]
也许您可以使用更少的代码和200多分钟,这实际上取决于您的应用程序