多次使用时存储O(1)hashet查找结果是一个好习惯吗?

Erw*_*yer 2 .net c# performance dictionary design-patterns

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

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

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

谢谢!

Dan*_*rth 8

是.

O(1)简单地说明操作需要相同的时间,无论有多少项目.
并不意味着它所花费的时间与访问本地变量一样快.

另外,请考虑以下事项:

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