字典 Dictionary 经过 Hash 桶算法进行O(1)查找数据,在 Hash 碰撞达到必定次数后会自动进行 Resize,也会在数组大小不足的时候会自动进行Resize。算法
若是自定义 Key 没有重写 GetHashCode 和 Equal 方法,则会调用基类 Object 的方法。数组
若是自定义 Key 是 Struct 的话,则会出现装箱操做致使 GC Alloc。(旧版本的 Unity 支持 C# 不高,所以默认 Comparer 没有对 Enum 进行处理,致使 Enum 做为 Key 也会形成 GC)对象
致使相同数据的两个对象断定不相等。blog
在初始化 Dictionary 的时候须要构造对应的 Comparer。
it
若是没有传入 Comparer 的时候,会根据 Key 的类型自动建立 Comparer。
io
其中进行插入,查找等操做时候,经过调用 Comparer 的 GetHashCode 和 Equal 方法来检查对应桶是否存在对应Key。
方法