介绍Dictionary

使用前需引入命名空间 using System.Collections.Generic

Dictionary里面每一个元素都是一个键值对(由两个元素组成:键和值)

键必须是唯一的,而值不需要唯一

键和值都可以是任何类型(比如:string,int,自定义类型等)

通过一个键读取一个值的时间接近0(1)

键值对之间的偏序可以不定义

使用Dictionary

使用dictionary判断字符串中字符出现次数

var dic = new Dictionary<char, int>();
string str = "welcome to china,and bei jing huan ying ni";
for (int i = 0; i < str.Length; i++)
{
if (!dic.ContainsKey(str[i]))//判断是否包含指定键名
{
dic.Add(str[i], 1);
}
else
{
dic[str[i]]++;//如果这个键值对中存在这个元素,就把个数加1
}
}
//利用一个键值对KeyValuePair来访问这个元素
foreach (KeyValuePair<char, int> item in dic)
{
Console.WriteLine("字符{0} {1}在这个句子中出现了{2}次", item.Key, (int)item.Key, item.Value);
}
Console.ReadKey();

键值对中value是数组

//键值对中value是数组
var dic = new Dictionary<string, string[]>();
string[] HuBei = { "wuhan", "tianmen", "xiantao" };
string[] GuangDong = { "guangzhou", "shenzhen", "foshan" };
dic.Add("HB", HuBei);
dic.Add("GD", GuangDong);
Console.WriteLine(dic["HB"][0]);
Console.WriteLine(dic["GD"][1]);
Console.ReadKey();

键值对中value是类

static void Main(string[] args)
{
//键值对中value是类
var stuList = new Dictionary<string, Student>();
for (int i = 0; i < 3; i++)
{
Student stu = new Student();
stu.Num = i.ToString();
stu.Name = "Student" + i.ToString();
stuList.Add(i.ToString(), stu);
}
foreach (var student in stuList)
{
Console.WriteLine("Output : Key {0}, Num : {1}, Name : {2}",
student.Key, student.Value.Num, student.Value.Name);
}
Console.ReadKey();
} public class Student
{
public string Num { get; set; }
public string Name { get; set; }
}

End!

最新文章

  1. 【AR实验室】ARToolKit之Example篇
  2. 核心动画 - CAKeyframeAnimation 简单应用
  3. 阿里云Ubuntu 14.04 + Nginx + let&#39;s encrypt 搭建https访问
  4. 判断闰年的方法以及如何获得单链表的倒数第K个元素
  5. jquery星级评论打分组件
  6. 深入浅出ExtJS 第六章 布局
  7. 404、500、502等HTTP状态码介绍
  8. Extjs6官方文档译文——应用架构简介(MVC,MVVM)
  9. maven的安装配置以及在IDEA中配置
  10. Angular 学习笔记 ( CDK - Portal )
  11. 在VirtualBox中安装BlackArch Linux
  12. CentOS上安装配置Ruby on Rails
  13. 微软Power BI 每月功能更新系列——7月Power BI 新功能学习
  14. flask + apidoc 生成接口文档(附加一个坑)
  15. 佛祖保佑,永不死机 - /etc/motd文件配置
  16. 转:C#综合揭秘——细说多线程(上)
  17. Maven2和ivy比较
  18. python实现定时发送系列
  19. 并发编程(三) IO模型
  20. Python练习-有点儿意思的用户登录

热门文章

  1. JS高阶---作用域面试
  2. djang小项目过程中的小问题 02(跳转界面)
  3. C++17尝鲜
  4. onchange onpropertychange 和 oninput 事件的区别
  5. 跨交换机VLAN之间的通信(基于Cisco模拟器)
  6. 11/11 &lt;Topological Sort&gt; 207
  7. 项目:git+gitlab+jenkins+ansible上线网站
  8. [LeetCode] 172. Factorial Trailing Zeroes 求阶乘末尾零的个数
  9. 轻量级Mysql Sharding中间件——Shark
  10. Azure DevOps Server (TFS) 代码库Repo管理培训