c# - 多次使用时存储 O(1) 哈希查找的结果是一种好习惯吗?

标签 c# .net performance design-patterns dictionary

我正在使用哈希集结构进行映射:Dictionary<string, string> .

如果我需要在连续的语句中多次读取 myHashset["key1"] 的值,使用局部变量存储第一次查找是否是一个好习惯?

编辑:没有其他线程会修改字典,因此这不是一个重要的标准。

谢谢!

最佳答案

是的。

O(1) 只是说明无论有多少项,该操作花费的时间都是相同的。
并不意味着它所花费的时间与访问局部变量一样快。

此外,请考虑以下事项:

  1. 访问局部变量更具可读性
  2. 通常,您希望在通过键访问字典中的值时进行错误处理,甚至使用 TryGetValue。使用局部变量时,您可以将此代码保留在一个地方,而不必将其涂抹在整个方法中。

关于c# - 多次使用时存储 O(1) 哈希查找的结果是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12173007/

相关文章:

Python 3 日志记录 : QueueListener + SocketHandler, 第一次清除队列真的很慢

php - 在 PHP 中是否有等同于 C++ 的 std::vector 的东西?

c# - 将 VS 2008 (c#) 解决方案转换为 VS 2010 后出现错误/警告

c#/.NET/Winforms RichTextBox : Highlight active line

c# - 如何在 ServiceAuthorizationManager 中设置身份/用户名?

c# - 单独组装和路由中的 Controller

c# - 在 WPF 中克隆 TabItem 最简单的方法是什么?

c# - 通过从网页将字符串查询传递到通用处理程序来避免空值 - asp.net

c# - 如何以编程方式展平 SVG 文件中的变换?

c++ - 在 CUDA 内核中使用 char 变量会受到惩罚吗?