字典基础

1.概述:字典是一组映射,更准确的说应该是一个函数。因为它的键值不能重复,而值可以重复。其逻辑实质也是顺序型的

2.操作:
(1)创建: Dictionary<键类型,值类型> 字典名 =new Dictionary<键类型,值类型>();    //值和键类型除了基础类型,也可以数组,列表等复杂类型。

Dictionary<键类型,值类型> 字典名 =new
Dictionary<键类型,值类型>()

{

{第一组键值},{第二组键值}……    //直接初始化

};

(2)添加元素:字典名.Add(键值,值);

// 如果新添加的元素的键值重复,则在运行时会报错。这是可以用 字典名.TryAdd(键值,值); 进行判断。注意这个方法的返回值是bool型

(3)取值与赋值

取值: 字典名[键值];

//如果害怕字典中不存在所要取值的键,则可以用 字典名.TryGetValue(键值,out 输出参数 ); 进行判断,返回值为bool型。在这里要注意输出参数则代表了Value,不要忘记out

赋值: 字典名[键值]=新值;

(1)   
删除元素: 字典名.Remove(键值);

(2)   
显示字典的全长: 字典名.Count();  //加不加圆括号都行

(3)   
判断键是否在字典内:字典名.ContainsKey(键值);//返回类型为bool型

(4)   
判断值是否在字典内:字典名.ContainsValue(值); //返回类型为boo型

(5)   
通过键值对遍历字典:foreach(KeyValuePair
变量名 in 字典名){;}

(9)获取哈希表建的集合://以此遍历哈希表的键值

Dictionary<键类型,值类型>.KeyCollection 变量名 = 字典名.Keys;

(6)   
获取哈希表值的集合://以此遍历哈希表的值

Dictionary<键类型,值类型>.ValueCollection 变量名 = 字典名.Value;

//(8) (9) 两种遍历方法还可以简化为:

foreach(var I in 字典名.Keys/Values) {;}

(7)   
清空字典: 字典名.Clear();

3.排序字典:Sorted Dictionary<键类型,值类型>与字典的操作大体相同,不同处在于其值按键升序排序。

C#泛型集合之——字典的更多相关文章

  1. C#中数组、集合(ArrayList)、泛型集合List<T>、字典(dictionary<TKey,TValue>)全面对比

    C#中数组.集合(ArrayList).泛型集合List<T>.字典(dictionary<TKey,TValue>)全面对比 为什么把这4个东西放在一起来说,因为c#中的这4 ...

  2. C#面向对象14 List泛型集合/装箱和拆箱/字典集合(Dictionary)

    1.List泛型集合 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...

  3. 快速入门系列--CLR--03泛型集合

    .NET中的泛型集合 在这里主要介绍常见的泛型集合,很多时候其并发时的线程安全性常常令我们担忧.因而简述下.NET并发时线程安全特性,其详情请见MSDN. 普通集合都不支持多重并发写操作 部分支持单线 ...

  4. ConvertHelper与泛型集合

    在机房重构时.我们常常会用到ConvertHelper. 它把从数据库中查询到的dateTable(也是一个暂时表)转化为泛型,然后再填充到DataGridView控件中. ConvertHelper ...

  5. LINQ学习系列-----3.1 查询非泛型集合

    一.问题起源 LINQ to object在设计时,是配合IEnumerable<T>接口的泛型集合类型使用的,例如字典.数组.List<T>等,但是对于继承了IEnumera ...

  6. .NET中的泛型集合总结

    最近对集合相关的命名空间比较感兴趣,以前也就用下List<T>, Dictionary<Tkey, TValue>之类,总之,比较小白.点开N多博客,MSDN,StackOve ...

  7. C#-非泛型集合的方法

    非泛型集合的类和接口位于System.Collections命名空间 如:列表.队列.位数组.哈希表和字典的集合     ArrayList 动态数组 可被单独索引的对象的有序集合可以使用索引在指定的 ...

  8. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

  9. C#中DataTable与泛型集合互转(支持泛型集合中对象包含枚举)

    最近在做WCF,因为是内部接口,很多地方直接用的弱类型返回(DataSet),这其实是一种非常不好的方式,最近将项目做了修改,将所有接口返回值都修改成强类型,这样可以减少很多与客户端开发人员的沟通,结 ...

随机推荐

  1. docker安装 与 基本配置

    1.安装docker #yum remove docker \ docker-common \ container-selinux \ docker-selinux \ docker-engine \ ...

  2. [技术博客] 用户验证码验证机制---redis缓存数据库的使用

    目录 问题引入 初识redis 实际应用 作者:马振亚 问题引入 在这次的开发过程中,我们的需求中有一个是普通用户可以通过特定的机制申请成为社长.因为只有部分人才能验证成功,所以这个最开始想了两种思路 ...

  3. PHP面试-复习知识点整理

    false的七种情况 整型0 浮点0.0 布尔false 空字符串'',"" 字符串'0' 空数组[] NULL 超全局数组 $GLOBALS,包含下面8个超全局数组的值 $_GE ...

  4. ubuntu下Vim安装失败

    sudo apt-get install vim Reading package lists... Done Building dependency tree Reading state inform ...

  5. Default Activity Not Found解决方法

    2018年04月07日 17:22:44 Luckily_Liu 阅读数 13573更多 分类专栏: android   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上 ...

  6. sumdoc t411 dir.txt

    C:\Users\zhoufeiyue\Documents\sumdoc t411\(9+条消息)redis Jedis存取list对象和map - shenjianxz的博客 - CSDN博客.mh ...

  7. 008_AuditionCC系列1

    一.一二章编辑音频文件. (1)在音轨编辑页面,按鼠标滚轮或键盘上的+个-号可实现Zoom in(放大),Zoom out(缩小) (2)①次声波频率在<20Hz和>20000Hz之间②人 ...

  8. spring.factories spring.schemas spring.handlers spring自动装配

    org.springframework.core.io.support.SpringFactoriesLoader —— public static final String FACTORIES_RE ...

  9. HDFS API 测试用例

    增加依赖 <!--hadoop--> <dependency> <groupId>org.apache.hadoop</groupId> <art ...

  10. Java 各种时间日期相关的操作

    目录 1.获取当前时间的时间戳 1.1.时间进制 1.2.获取毫秒级时间戳 1.3.获取纳秒级时间戳 2.java.util包 2.1.Data 2.2.Calendar 3.java.time包 3 ...