加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 23:59:33 所属栏目:百科 来源:网络整理
导读:我正在设计一个包含字符串层次结构的C#类,其中每个字符串都有0或1个父项. 我倾向于用Dictionary string,string来实现它.其中键是子项,值是父项.字典可能有很多值,但我不能说确切的大小.这看起来应该比创建包含父对象的复合包装器的执行速度更快,但我可能错了
我正在设计一个包含字符串层次结构的C#类,其中每个字符串都有0或1个父项.

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

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

解决方法

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读