字典基础

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. mysql5.7密码过期ERROR 1862 (HY000): Your password has expired. To log in you must change

    环境: ubuntu14.04  mysql5.7 一.mysql5.7 密码过期问题 报错: ERROR 1862 (HY000): Your password has expired. To lo ...

  2. 自动创建Kibana索引

    参考 https://www.cnblogs.com/dance-walter/p/10471950.html 参考 https://www.elastic.co/guide/en/kibana/cu ...

  3. centos7安装yum

    由于不小心把自带的yum给卸载了,卸载命令:rpm -qa yum: 在浏览器打开链接:http://mirrors.163.com/centos/6/os/x86_64/Packages/下载这四个 ...

  4. pandas.merge数据连接合并

    https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&shareId=400000000398 ...

  5. linux系统错误码大全

    #define EPERM 1 /* Operation not permitted */ #define ENOENT 2 /* No such file or directory */ #defi ...

  6. Xamarin.Forms Shell基础教程(1)

    Xamarin.Forms Shell基础教程(1) 什么是Xamarin.Forms Shell Shell是Visual Studio为Xamarin Forms提供的解决方案模版.本质上,She ...

  7. 安装MySQL Server

    之前安装了MySQL Workbench 8.0 CE,现在来安装MySQL Server. 点击 add next next next     完成 MySQL安装包地址: 链接:https://p ...

  8. GIT删除本地tag和远程tag

    以tag test为例,这个tag已经同步到远程,但是现在发现了一个问题,需要撤回该tag,git命令如下: 删除本地tag: git tag -d test 删除远程tag: git push or ...

  9. postman 用环境变量Environment实现多服务器版本

    现存问题 在测试API期间,往往存在多种环境,对应IP地址(或域名也不同) 比如: Prod: http://116.62.25.57/ucows 用于开发完成发布到生产环境 Dev: http:// ...

  10. unity 如何打开本地文件夹,并选中文件

    public static void OpenDirectory(string path, bool isFile = false) { if (string.IsNullOrEmpty(path)) ...