Dictionary的使⽤⽅法详解
简介在C#中,Dictionary提供快速的基于兼职的元素查。当你有很多元素的时候可以使⽤它。它包含在System.Collections.Generic名空间中。
在使⽤前,你必须声明它的键类型和值类型。
详细说明必须包含名空间System.Collection.Generic Dictionary⾥⾯的每⼀个元素都是⼀个键值对(由⼆个元素组成:键和值) 键必须是唯⼀的,⽽值不需要唯⼀的键和值都可以是任何类型(⽐如:string, int, ⾃定义类型,等等) 通过⼀个键读取⼀个值的时间是接近O(1) 键值对之间的偏序可以不定义创建和初始化⼀个Dictionary对象 Dictionary<int,string> myDictionary = new Dictionary<int, string="">(); 添加键 static void Main(string[] args) {  Dictionary<string, int=""> d = new Dictionary<string, int="">();  d.Add("C#", 2);  d.Add("C", 0);  d.Add("C++", -1); } 查键 static void Main(string[] args) {    Dictionary<string, int=""> d = new Dictionary<string, int="">();    d.Add("C#", 2);    d.Add("VB", 1);
d.Add("C", 0);    d.Add("C++", -1);    if (d.ContainsKey("VB")) // True    {      int p = d["VB"];      Consol
e.WriteLine(p);      }        if
(d.ContainsKey("C"))      {        int p1 = d["C"];        Console.WriteLine(p1);      } } 删除元素 static void Ma
in(string[] args) {    Dictionary<string, int=""> d = new Dictionary<string, int="">();    d.Add("C#", 2);    d.Add("VB", 1);    d.Add("C", 0);    d.Add("C++", -1);      d.Remove("C");      d.Remove("VB"); } 使⽤ContainsValue查值的存在 static void Main(string[] args) {    Dictionary<string, int=""> d = new Dictionary<string, int="">();    d.Add("C#", 2);    d.Add("VB", 1);    d.Add("C", 0);    d.Add("C++", -1);    if (d.ContainsValue(1))    {
Console.WriteLine("VB");    }    if (d.ContainsValue(2))    {        Console.WriteLine("C#");    }    if (d.ContainsValue(0))    {      Console.WriteLine("C");    }    if (d.ContainsValue(-1))      {          Console.WriteLine("C++");      }                } KeyNotFoundException 如果你尝试读取字典中⼀个不存在的键,那么你会得到⼀个KeyNotFoundException。所有在读取⼀个键之前,你必须先使⽤ContainKey来核对键是否存在字典中。
基于int键的Dictionary static void Main(string[] args) {    Dictionary<int, string=""> d = new Dictionary<int, string="">();    d.Add(1000, "Planet");    d.Add(2000, "Stars");    // lookup the int in the dictionary.    if (d.ContainsKey(1000))    {        Console.WriteLine(true);    }      Console.ReadLine(); } 排序字典SortedDictionary 在排序字典中,当添加元素时字典必须进⾏排序,所以插⼊的速度会⽐较慢点。但是因为元素是有序存储的,所以元素的查可以使⽤⼆分搜索等⼀些效率更⾼的搜索。
总结在这篇⽂章中,简要地介绍C#中的Dictionary的使⽤。动⼿写写吧~
1. using System;
2. using System.Collections.Generic;
3.
4. class DictionaryDemo
5. {
6.    staticvoid Main(string[] args)
7.    {
8.        DictionaryDemo001();
9.        Console.ReadLine();
10.
11.        DictionaryDemo002();
12.        Console.ReadLine();
13.
14.        DictionaryDemo003();
15.        Console.ReadLine();
16.    }
17.
18.    /// <summary>
19.    /// ⼀般⽤法
20.    /// </summary>
21.    staticvoid DictionaryDemo001()
22.    {
23.        Dictionary<int, string> dict = new Dictionary<int, string>();
24.        dict.Add(1, "111");
25.        dict.Add(2, "222");
26.
27.        //判断是否存在相应的key并显⽰
28.        if (dict.ContainsKey(2))
29.        {
30.            Console.WriteLine(dict[2]);
31.        }
32.
33.        //遍历Keys
34.        foreach (var item in dict.Keys)
35.        {
36.            Console.WriteLine("Key:{0}", item);
37.        }
38.
39.        //遍历Values
writeline使用方法python40.        foreach (var item in dict.Values)
41.        {
42.            Console.WriteLine("value:{0}", item);
43.        }
44.
45.        //遍历整个字典
46.        foreach (var item in dict)
47.        {
48.            Console.WriteLine("key:{0} value:{1}", item.Key, item.Value);
49.        }
50.    }
51.
52.    /// <summary>
53.    /// 参数为其它类型
54.    /// </summary>
55.    staticvoid DictionaryDemo002()
56.    {
57.        Dictionary<string, string[]> dict = new Dictionary<string, string[]>();
58.        dict.Add("1", "1,11,111".Split(','));
59.        dict.Add("2", "2,22,222".Split(','));
60.        Console.WriteLine(dict["2"][2]);
61.    }
62.
63.    /// <summary>
64.    /// 调⽤⾃定义类
65.    /// </summary>
66.    staticvoid DictionaryDemo003()
67.    {
68.        Dictionary<int, yongfa365> dict = new Dictionary<int, yongfa365>();
69.        for (int i = 0; i < 10; i++)
70.        {
71.            yongfa365 y = new yongfa365();
72.            y.UserCode = i;
73.            y.UserName = "fa365 " + i.ToString();
74.            dict.Add(i, y);
75.        }
76.        foreach (var item in dict)
77.        {
78.            Console.WriteLine("{0} One:{1} UserName:{2}", item.Key, item.Value.UserCode, item.Value.UserName);
79.        }
80.    }
81. }
82.
83. class yongfa365
84. {
85.    publicint UserCode { get; set; }
86.    publicstring UserName { get; set; }
87.
88. }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。