C#中字符串字典的最佳性能

C#中字符串字典的最佳性能,第1张

概述我正在设计一个包含字符串层次结构的C#类,其中每个字符串都有0或1个父项. 我倾向于用Dictionary< string,string>来实现它.其中键是子项,值是父项.字典可能有很多值,但我不能说确切的大小.这看起来应该比创建包含父对象的复合包装器的执行速度更快,但我可能错了. 我可以采用另一种方法来确保更好的性能速度吗? 从字典< K,V>中检索值.因为底层实现使用哈希表,所以非常快(接近O 我正在设计一个包含字符串层次结构的C#类,其中每个字符串都有0或1个父项.

我倾向于用Dictionary< string,string>来实现它.其中键是子项,值是父项.字典可能有很多值,但我不能说确切的大小.这看起来应该比创建包含父对象的复合包装器的执行速度更快,但我可能错了.

我可以采用另一种方法来确保更好的性能速度吗?

解决方法 从字典< K,V>中检索值.因为底层实现使用哈希表,所以非常快(接近O(1),即几乎恒定的时间查找而不管集合的大小).当然,如果密钥类型使用可怕的散列算法而不是性能会降低,但是您可以放心,这可能不是框架的字符串类型的情况.

但是,正如我在评论中提到的那样,您需要回答几个问题:

>定义最重要的性能指标,即时间(cpu)或空间(内存).
>您有什么要求?这将如何使用?你最糟糕的情况是什么?这是否会在相对不频繁的查找中保留大量数据,是否需要在很短的时间内执行许多查找,或者两者都适用?

字典< K,V> class也在内部使用一个数组,当你添加项目时它会增长.这对你好吗?同样,在任何人给你一个完整的答案之前,你需要在你的要求方面更加具体.

总结

以上是内存溢出为你收集整理的C#中字符串字典的最佳性能全部内容,希望文章能够帮你解决C#中字符串字典的最佳性能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1221891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存