C#泛型集合之——字典
字典基础
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#泛型集合之——字典的更多相关文章
- C#中数组、集合(ArrayList)、泛型集合List<T>、字典(dictionary<TKey,TValue>)全面对比
C#中数组.集合(ArrayList).泛型集合List<T>.字典(dictionary<TKey,TValue>)全面对比 为什么把这4个东西放在一起来说,因为c#中的这4 ...
- C#面向对象14 List泛型集合/装箱和拆箱/字典集合(Dictionary)
1.List泛型集合 using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...
- 快速入门系列--CLR--03泛型集合
.NET中的泛型集合 在这里主要介绍常见的泛型集合,很多时候其并发时的线程安全性常常令我们担忧.因而简述下.NET并发时线程安全特性,其详情请见MSDN. 普通集合都不支持多重并发写操作 部分支持单线 ...
- ConvertHelper与泛型集合
在机房重构时.我们常常会用到ConvertHelper. 它把从数据库中查询到的dateTable(也是一个暂时表)转化为泛型,然后再填充到DataGridView控件中. ConvertHelper ...
- LINQ学习系列-----3.1 查询非泛型集合
一.问题起源 LINQ to object在设计时,是配合IEnumerable<T>接口的泛型集合类型使用的,例如字典.数组.List<T>等,但是对于继承了IEnumera ...
- .NET中的泛型集合总结
最近对集合相关的命名空间比较感兴趣,以前也就用下List<T>, Dictionary<Tkey, TValue>之类,总之,比较小白.点开N多博客,MSDN,StackOve ...
- C#-非泛型集合的方法
非泛型集合的类和接口位于System.Collections命名空间 如:列表.队列.位数组.哈希表和字典的集合 ArrayList 动态数组 可被单独索引的对象的有序集合可以使用索引在指定的 ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
- C#中DataTable与泛型集合互转(支持泛型集合中对象包含枚举)
最近在做WCF,因为是内部接口,很多地方直接用的弱类型返回(DataSet),这其实是一种非常不好的方式,最近将项目做了修改,将所有接口返回值都修改成强类型,这样可以减少很多与客户端开发人员的沟通,结 ...
随机推荐
- 一种Winform类electron的实现
最近看了一篇文章 Winform客户端内嵌Vue页面 使用html作为winform的界面(其实这种做法早在MFC时代就已经有了),不过感觉文章中的封装并不够彻底,所以我忍不住要发一篇博客来说说我 ...
- java并发编程(三)cpu cache & 缓存一致性
一 cpu cache 1. cache的意义 为什么需要CPU cache?因为CPU的频率太快了,快到主存跟不上,这样在处理器时钟周期内,CPU常常需要等待主存,浪费资源.所以cache的出 ...
- asp.net core 托管到windows服务,并用iis做反向代理
使用NSSM把.Net Core部署至 Windows 服务 为什么部署至Windows Services 在很多情况下,很少会把.Net Core项目部署至Windows服务中,特别是Asp.n ...
- 七年老运维实战中的 Shell 开发经验总结【转】
无论是系统运维,还是应用运维,均可分为“纯手工”—> “脚本化”—> “自动化”—>“智能化”几个阶段,其中自动化阶段,主要是将一些重复性人工操作和运维经验封装为程序或脚本,一方面避 ...
- JVM探究之 —— 垃圾回收(一)
垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物.事实上,GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和 ...
- vs开启,Windows 10磁盘占用100%解决办法
https://www.cnblogs.com/time-is-life/p/8888441.html 最后把Home Group相关的服务都改成禁用. 注意: 即使这两个服务没有启动也不行, 一定要 ...
- mysql实现row_number()和row_number() over(partition by)
row_number() ) r, test_table t 解释:给test_table里的数据设置行号, rn是行号 row_number() over(partition by) ,@rank: ...
- python做上位机
参考文章: https://blog.csdn.net/dgut_guangdian/article/details/78391270 https://www.cnblogs.com/lanceyu/ ...
- hue创建的hdfs数据在hdfs无法删除的问题。
在linux时删除时出现: rmr: Permission denied: user=root, access=ALL, inode="/user/root/.Trash/191128080 ...
- Jenkins 发布项目到远程服务器上
最近公司弄一个项目,jenkins在本地服务器,需要打包发布到远程的阿里云服务器上,弄了好一阵子. 这里记录下中间的几个坑. 这个Remote DIrectory 很重要,到时候时候会拷贝到这个目录下 ...