C#中的Dictionary的使用

在工作中有时候会用到Dictionary,由于自己之前没用过,参考了一下前人和先辈的实践,仿照着写了一个Test,第一次用还不是很熟练,要多实践练习才能用的得心应手,写代码重在敲键盘,以此为诫。(主要注意下这个Dictionary的key和value以及添加数据方式)

写了三个方法和一个Student类。

 1 namespace DictionaryTest
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {
 7             DicSample1();
 8             DicSample2();
 9             DicSample3();
10             Console.ReadLine();
11         }
12
13         public static void DicSample1()
14         {
15             Dictionary<string, string> dic = new Dictionary<string, string>();
16             if (dic.ContainsKey("Item1") == false)
17             {
18                 dic.Add("Item1", "ZheJiang");
19             }
20             if (dic.ContainsKey("Item2") == false)
21             {
22                 dic.Add("Item2", "ShangHai");
23             }
24             else
25             {
26                 dic["Item2"] = "ShangHai";
27             }
28             if (dic.ContainsKey("Item3") == false)
29             {
30                 dic.Add("Item3", "BeiJing");
31             }
32             if (dic.ContainsKey("Item1"))
33             {
34                 Console.WriteLine("Output:" + dic["Item1"]);
35             }
36             //遍历key
37             foreach (var key in dic.Keys)
38             {
39                 Console.WriteLine("Output key :{0}" , dic.Keys);
40             }
41             //遍历value
42             foreach (var value in dic.Values)
43             {
44                 Console.WriteLine("Output value :{0}", dic.Values);
45             }
46
47             foreach (var d in dic)
48             {
49                 Console.WriteLine("Output key:{0}, value:{1}", d.Key, d.Value);
50             }
51         }
52
53         public static void DicSample2()
54         {
55             Dictionary<string, string[]> dics = new Dictionary<string, string[]>();
56             string[] ZheJiang = { "Hangzhou", "Huzhou", "Taizhou", "Wenzhou", "Quzhou" };
57             string[] AnHui = { "Hefei", "Wuhu", "Huainan", "Fuyang", "Huangshan" };
58             dics.Add("ZJ", ZheJiang);
59             dics.Add("AH", AnHui);
60             for (int i = 0; i <= ZheJiang.Count() - 1; i++)
61             { Console.WriteLine("Output:" + dics["ZJ"][i]); }
62             for (int j = 0; j < AnHui.Count() - 1; j++)
63             { Console.WriteLine("Output:" + dics["AH"][j]); }
64         }
65
66         public static void DicSample3()
67         {
68             Dictionary<string, Student> dics = new Dictionary<string, Student>();
69             Student student = null;
70             for (int i = 0; i < 3; i++)
71             {
72                 student = new Student();
73                 student.Num = i.ToString();
74                 student.Name = "Student Name" + i.ToString();
75                 dics.Add(i.ToString(), student);
76             }
77             foreach (var stuItem in dics)
78             {
79                 Console.WriteLine("Output: key{0},Num{1},Name{2}", stuItem.Key, stuItem.Value.Num, stuItem.Value.Name);
80             }
81         }
82     }
83     public class Student
84     {
85         public string Name { get; set; }
86         public string Num { get; set; }
87     }
88 }

以下是运行结果:

时间: 2024-07-30 05:09:19

C#中的Dictionary的使用的相关文章

VB中的Dictionary对象

VB中的Dictionary对象 核心归纳:1.更换键名,用obj.key("xx")="newxx"2.更换键值或访问指定键: (1)重设键值:obj.item("xx")="newxx", (2)取得键值:obj.item("xx")="newxx" 中的KEY键“xx”未设定时,会在对象的后面增加一个键值对.3.获得条目数:obj.count (从1开始)4.增加键值对:obj.a

AS3中的Dictionary类

AS3中的Dictionary类(flash.utils.Dictionary)是一个新的AS类.Dictionary类和Object唯一的区别在于:Dictionary对象可以使用非字符串作为键值对的键.例如: var obj:Object = new Object();obj["name"] = 1; // 键是字符串"name"obj[1] = 2; // 键是1 (被转换成字符串"1")obj[new Object()] = 3; //

C#中的Dictionary字典类介绍

关键字:C# Dictionary 字典 作者:txw1958原文:http://www.cnblogs.com/txw1958/archive/2012/11/07/csharp-dictionary.html 说明    必须包含名空间System.Collection.Generic     Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)     键必须是唯一的,而值不需要唯一的     键和值都可以是任何类型(比如:string, int, 自定义类型,等等

C#中的Dictionary类,默认key是区分大小写的

在C#中定义一个Dictionary Dictionary<string,string> dictionary = new Dictionary<string,string>(); dictionary.Add("a","b"); dictionary.Add("A","B");//A与a是不同的 但如果想要创建不区分大小写的Dictionary类,也不是没有办法: 使用这样的构造方法就可以了: Dic

python中字典dictionary详解及基本使用

1.dictionary是Python中除了list以外最灵活的数据类型 2.字典同样可以存储多个数据 3.通常用来存储描述某个物体的相关特征 4.和列表的区别 列表是有序的 字典是无须的 5.字典用{}来定义 6.字典用键值对存储数据,键值对之间用英文逗号分隔 键 key是索引 值 vaule是数据 键和值之间使用英文冒号:分隔 键必须是唯一的 值可以是任意数据类型,但是值只能是字符串.数字或元组 # 字典是一个无需的数据集合,print输出字典时通常输出的顺序和定义的顺序是不一致的 xiao

C#中的Dictionary字典类常用方法介绍

1 using System.Collections.Generic;//引用命名空间//Dictionary可以理解为散列集合 2 public class DictionaryTest 3 { 4 public static void Main() 5 { 6 //1.初始化 7 Dictionary<string, string> dicA = new Dictionary<string, string>(); 8 //2.添加元素 key,value->学号,姓名 9

.NET中Dictionary&lt;TKey, TValue&gt;浅析

.NET中Dictionary<TKey, Tvalue>是非常常用的key-value的数据结构,也就是其实就是传说中的哈希表..NET中还有一个叫做Hashtable的类型,两个类型都是哈希表.这两个类型都可以实现键值对存储的功能,区别就是一个是泛型一个不是并且内部实现有一些不同.今天就研究一下.NET中的Dictionary<TKey, TValue>以及一些相关问题. guid:33b4b911-2068-4513-9d98-31b2dab4f70c 文中如有错误,望指出.

EntityFramework中的线程安全,又是Dictionary

继上次记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)后又再次与Dictionary博弈,这一次是在EntityFramework中的Dictionary. 从一个异常说起 这个异常与上次的异常有着同一个特性:间歇性,碰到类似的异常在信心上就被削弱了一大半... 在第一次看到这个异常的时候觉得解决它非常的简单,无非就是在字典操作的地方加个锁,但仔细看了一会发现这个问题并没有那么简单,可以看到这个异常的最后几个堆栈信息来自System.Data.Entity命名空间,也就是

修改Dictionary或List中结构体struct值的问题

问题:修改Dictionary中结构体struct值的值,如果直接用Dictionary[key].a += XX;(a为结构体中某数值型属性) ,则会报错: 无法修改.Dictionary<int,struct>.this[int]”的返回值,因为它不是变量 如果用一个变量承接Dictionary[key]中的结构体,即struct newStr =Dictionary[key],然后再做出修改:newStr.a += XX,则Dictionary中对应的结构体的值不发生变化.(由此可判断结