C# 集合使用误区

使用 C# 好多年了,一直疏于深究,写了许多不好的逻辑而不自知,特开此文以做记录

字典

字典采用了哈希桶和链表来实现存储逻辑,存在哈希冲突时,链表查找的时间复杂度仍是 O(n)

好文推荐:InCerry-浅析C# Dictionary实现原理

初始化

  • 误:不指定 capacity,实例化后装填字典
  • 正:指定 capacity,避免 Resize 操作
  • 警:Resize 对空间和时间的消耗巨大

遍历键值

  • 误:遍历 Keys 属性,再使用索引查找值
  • 正:直接遍历字典,获取 KeyValuePair<,>
  • 警:字典查找存在明显的性能损失
posted @ 2020-08-02 17:37  祁去尘  阅读(110)  评论(0编辑  收藏  举报