博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#Dictionary键值对取值用法
阅读量:4502 次
发布时间:2019-06-08

本文共 3596 字,大约阅读时间需要 11 分钟。

 必须包含名空间System.Collection.Generic 

    Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值) 
    键必须是唯一的,而值不需要唯一的 
    键和值都可以是任何类型(比如:string, int, 自定义类型,等等) 
    通过一个键读取一个值的时间是接近O(1) 
    键值对之间的偏序可以不定义

//定义    Dictionary
openWith = new Dictionary
(); //添加元素 openWith.Add("txt", "notepad.exe"); openWith.Add("bmp", "paint.exe"); openWith.Add("dib", "paint.exe"); openWith.Add("rtf", "wordpad.exe"); //取值 Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]); //更改值 openWith["rtf"] = "winword.exe"; Console.WriteLine("For key = \"rtf\", value = {0}.", openWith["rtf"]); //遍历key foreach (string key in openWith.Keys) { Console.WriteLine("Key = {0}", key); } //遍历value foreach (string value in openWith.Values) { Console.WriteLine("value = {0}", value); } //遍历value, Second Method Dictionary
.ValueCollection valueColl = openWith.Values; foreach (string s in valueColl) { Console.WriteLine("Second Method, Value = {0}", s); } //遍历字典 foreach (KeyValuePair
kvp in openWith) { Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value); } //添加存在的元素 try { openWith.Add("txt", "winword.exe"); } catch (ArgumentException) { Console.WriteLine("An element with Key = \"txt\" already exists."); } //删除元素 openWith.Remove("doc"); if (!openWith.ContainsKey("doc")) { Console.WriteLine("Key \"doc\" is not found."); } //判断键存在 if (openWith.ContainsKey("bmp")) // True { Console.WriteLine("An element with Key = \"bmp\" exists."); } 参数为其它类型 //参数为其它类型 Dictionary
OtherType = new Dictionary
(); OtherType.Add(1, "1,11,111".Split(',')); OtherType.Add(2, "2,22,222".Split(',')); Console.WriteLine(OtherType[1][2]); 参数为自定义类型首先定义类 class DouCube { public int Code { get { return _Code; } set { _Code = value; } } private int _Code; public string Page { get { return _Page; } set { _Page = value; } } private string _Page; } 然后 //声明并添加元素 Dictionary
MyType = new Dictionary
(); for (int i = 1; i <= 9; i++) { DouCube element = new DouCube(); element.Code = i * 100; element.Page = "http://www.doucube.com/" + i.ToString() + ".html"; MyType.Add(i, element); } //遍历元素 foreach (KeyValuePair
kvp in MyType) { Console.WriteLine("Index {0} Code:{1} Page:{2}", kvp.Key, kvp.Value.Code, kvp.Value.Page); }

  

常用属性    名称    说明    Comparer     获取用于确定字典中的键是否相等的 IEqualityComparer
。 Count 获取包含在 Dictionary
中的键/值对的数目。 Item 获取或设置与指定的键相关联的值。 Keys 获取包含 Dictionary
中的键的集合。 Values 获取包含 Dictionary
中的值的集合。常用方法 名称 说明 Add 将指定的键和值添加到字典中。 Clear 从 Dictionary
中移除所有的键和值。 ContainsKey 确定 Dictionary
是否包含指定的键。 ContainsValue 确定 Dictionary
是否包含特定值。 Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。) Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。) GetEnumerator 返回循环访问 Dictionary
的枚举器。 GetHashCode 用作特定类型的哈希函数。 (继承自 Object。) GetObjectData 实现 System.Runtime.Serialization.ISerializable 接口,并返回序列化 Dictionary
实例所需的数据。 GetType 获取当前实例的 Type。 (继承自 Object。) MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。) OnDeserialization 实现 System.Runtime.Serialization.ISerializable 接口,并在完成反序列化之后引发反序列化事件。 Remove 从 Dictionary
中移除所指定的键的值。 ToString 返回表示当前对象的字符串。 (继承自 Object。) TryGetValue 获取与指定的键相关联的值。

转载于:https://www.cnblogs.com/BraveBoy/p/7417972.html

你可能感兴趣的文章
PostgreSQL在何处处理 sql查询之四十二
查看>>
网络流 dinic
查看>>
如何招到一个靠谱的程序员
查看>>
#pragma 预处理指令详解
查看>>
深度解析VC中的消息(上)
查看>>
通过迷宫问题归纳回溯法
查看>>
python相关软件安装流程图解——linux 安装python3——Python-3.7.1
查看>>
hdoj-1276-士兵队列训练问题(队列模拟)
查看>>
CentOS7升级OpenSSL版本
查看>>
PHP-函数
查看>>
微软Azure AspNetCore微服务实战 第一期
查看>>
命令行调用dubbo远程服务
查看>>
virtualbox 创建com对象失败
查看>>
编写 jQruy 插件 框架
查看>>
JavaScript常用获取宽高的方法
查看>>
开发Web Service的几种方式
查看>>
Dynamics 365 CRM 添加自定义按钮
查看>>
缺陷概述
查看>>
使用Eclipse对FFmpeg进行调试
查看>>
R语言数据类型
查看>>