C#字典Dictionary的用法说明(注重性能版)

发布日期:2025-01-04 10:32    点击次数:86
前言 以键值对Dictionary<[key], [value]>形式存值,和哈希表很像也是一种无序的结构。 要使用Dictionary,需要先导入C#泛型命名空间System.Collections.Generic Dictionary需要注意的特性 1.任何键都必须是唯一的 ——> 不能添加相同key的键值对,不然就报错: 如果要修改已有key对应的value,可以这样做: 2.Unity5.4以下的版本,最好不要用foreach来遍历字典: 法一:foreach遍历字典,会生成GC: 法二:对于我这种需求,使用for循环,会生成更多的GC,因为存在mActMergeRedPointKey这个局部List变量 法三:使用迭代器,不会生成GC: 3.根据key取value,最好使用 TryGetValue 而不是 ContainsKey+根据key索引value: 法一:ContainsKey+根据key索引value,不好,用了两次查找,第一次:ContainsKey,第二次:myDictionary[key] 法二:TryGetValue的方法: 使用TryGetValue更快,性能更好,因为只用了一次查找,TryGetValue 比 ContainsKey后使用[key]取value,速度快一倍; TryGetValue更安全,找不到value时返回false;而使用ContainsKey后使用[key]取value取不到时,会抛出异常导致真机卡死。 用法 一般用法:key和value都为基本类型,举例:key为int类型,value为string类型 实例应用 补充:c#中字典类(Dictionary)介绍 关键字:Dictionary 说明: 1、必须包含命名空间System.Collection.Generic 2、Dictionary里面每一个元素都是以键值对的形式存在的 3、键必须是唯一的,而值不需要唯一的 4、键和值都可以以任何数据类型存在(比如:值类型、引用类型、自定义类型等等) 5、通过一个键读取一个值得时间接近O(1) 字典的使用方法: 定义: 参数为其他类型 参数为自定义类型 常用属性 名称 说明 Comparer 获取用于确定字典中的键是否相等的 IEqualityComparer<T>。 Count 获取包含在 Dictionary<TKey, TValue> 中的键/值对的数目 Item 获取或设置与指定的键相关联的值。 Keys 获取包含 Dictionary<TKey, TValue> 中的键的集合。 Values 获取包含 Dictionary<TKey, TValue> 中的值的集合。 常用方法 名称 说明 Add 将指定的键和值添加到字典中。 Clear 从 Dictionary<TKey, TValue> 中移除所有的键和值 ContainsKey 确定 Dictionary<TKey, TValue> 是否包含指定的键 ContainsValue 确定 Dictionary<TKey, TValue> 是否包含特定值 GetEnumerator 返回循环访问 Dictionary<TKey, TValue> 的枚举器 GetObjectData 实现 System.Runtime.Serialization.ISerializable 接口,并返回序列化 Dictionary<TKey, TValue> 实例所需的数据 GetType 获取当前实例的 Type。 (继承自 Object。) MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。) OnDeserialization 实现 System.Runtime.Serialization.ISerializable 接口,并在完成反序列化之后引发反序列化事件。 Remove 从 Dictionary<TKey, TValue> 中移除所指定的键的值 TryGetValue 获取与指定的键相关联的值。 Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。 Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。(继承自 Object。) GetHashCode 用作特定类型的哈希函数。 (继承自 Object。) 以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。



Powered by ApeBond中文网 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024