zoukankan      html  css  js  c++  java
  • C# System.Collections.Generic.Dictionary

      1 using System;
      2 using System.Collections.Generic;
      3 
      4 public class Example
      5 {
      6     public static void Main()
      7     {
      8         // Create a new dictionary of strings, with string keys.
      9         //
     10         Dictionary<string, string> openWith = 
     11             new Dictionary<string, string>();
     12 
     13         // Add some elements to the dictionary. There are no 
     14         // duplicate keys, but some of the values are duplicates.
     15         openWith.Add("txt", "notepad.exe");
     16         openWith.Add("bmp", "paint.exe");
     17         openWith.Add("dib", "paint.exe");
     18         openWith.Add("rtf", "wordpad.exe");
     19 
     20         // The Add method throws an exception if the new key is 
     21         // already in the dictionary.
     22         try
     23         {
     24             openWith.Add("txt", "winword.exe");
     25         }
     26         catch (ArgumentException)
     27         {
     28             Console.WriteLine("An element with Key = "txt" already exists.");
     29         }
     30 
     31         // The Item property is another name for the indexer, so you 
     32         // can omit its name when accessing elements. 
     33         Console.WriteLine("For key = "rtf", value = {0}.", 
     34             openWith["rtf"]);
     35 
     36         // The indexer can be used to change the value associated
     37         // with a key.
     38         openWith["rtf"] = "winword.exe";
     39         Console.WriteLine("For key = "rtf", value = {0}.", 
     40             openWith["rtf"]);
     41 
     42         // If a key does not exist, setting the indexer for that key
     43         // adds a new key/value pair.
     44         openWith["doc"] = "winword.exe";
     45 
     46         // The indexer throws an exception if the requested key is
     47         // not in the dictionary.
     48         try
     49         {
     50             Console.WriteLine("For key = "tif", value = {0}.", 
     51                 openWith["tif"]);
     52         }
     53         catch (KeyNotFoundException)
     54         {
     55             Console.WriteLine("Key = "tif" is not found.");
     56         }
     57 
     58         // When a program often has to try keys that turn out not to
     59         // be in the dictionary, TryGetValue can be a more efficient 
     60         // way to retrieve values.
     61         string value = "";
     62         if (openWith.TryGetValue("tif", out value))
     63         {
     64             Console.WriteLine("For key = "tif", value = {0}.", value);
     65         }
     66         else
     67         {
     68             Console.WriteLine("Key = "tif" is not found.");
     69         }
     70 
     71         // ContainsKey can be used to test keys before inserting 
     72         // them.
     73         if (!openWith.ContainsKey("ht"))
     74         {
     75             openWith.Add("ht", "hypertrm.exe");
     76             Console.WriteLine("Value added for key = "ht": {0}", 
     77                 openWith["ht"]);
     78         }
     79 
     80         // When you use foreach to enumerate dictionary elements,
     81         // the elements are retrieved as KeyValuePair objects.
     82         Console.WriteLine();
     83         foreach( KeyValuePair<string, string> kvp in openWith )
     84         {
     85             Console.WriteLine("Key = {0}, Value = {1}", 
     86                 kvp.Key, kvp.Value);
     87         }
     88 
     89         // To get the values alone, use the Values property.
     90         Dictionary<string, string>.ValueCollection valueColl =
     91             openWith.Values;
     92 
     93         // The elements of the ValueCollection are strongly typed
     94         // with the type that was specified for dictionary values.
     95         Console.WriteLine();
     96         foreach( string s in valueColl )
     97         {
     98             Console.WriteLine("Value = {0}", s);
     99         }
    100 
    101         // To get the keys alone, use the Keys property.
    102         Dictionary<string, string>.KeyCollection keyColl =
    103             openWith.Keys;
    104 
    105         // The elements of the KeyCollection are strongly typed
    106         // with the type that was specified for dictionary keys.
    107         Console.WriteLine();
    108         foreach( string s in keyColl )
    109         {
    110             Console.WriteLine("Key = {0}", s);
    111         }
    112 
    113         // Use the Remove method to remove a key/value pair.
    114         Console.WriteLine("
    Remove("doc")");
    115         openWith.Remove("doc");
    116 
    117         if (!openWith.ContainsKey("doc"))
    118         {
    119             Console.WriteLine("Key "doc" is not found.");
    120         }
    121     }
    122 }
    123 
    124 /* This code example produces the following output:
    125 
    126 An element with Key = "txt" already exists.
    127 For key = "rtf", value = wordpad.exe.
    128 For key = "rtf", value = winword.exe.
    129 Key = "tif" is not found.
    130 Key = "tif" is not found.
    131 Value added for key = "ht": hypertrm.exe
    132 
    133 Key = txt, Value = notepad.exe
    134 Key = bmp, Value = paint.exe
    135 Key = dib, Value = paint.exe
    136 Key = rtf, Value = winword.exe
    137 Key = doc, Value = winword.exe
    138 Key = ht, Value = hypertrm.exe
    139 
    140 Value = notepad.exe
    141 Value = paint.exe
    142 Value = paint.exe
    143 Value = winword.exe
    144 Value = winword.exe
    145 Value = hypertrm.exe
    146 
    147 Key = txt
    148 Key = bmp
    149 Key = dib
    150 Key = rtf
    151 Key = doc
    152 Key = ht
    153 
    154 Remove("doc")
    155 Key "doc" is not found.
    156  */
     1 using System;
     2 using System.Collections.Generic;
     3 public class Example
     4 {
     5          public static void Main()
     6          {
     7                //一、创建泛型哈希表,然后加入元素
     8                Dictionary<string, string> oscar = new Dictionary<string, string>();
     9                oscar.Add("哈莉?贝瑞", "《死囚之舞》");
    10                oscar.Add("朱迪?丹奇", "《携手人生》");
    11                oscar.Add("尼科尔?基德曼", "《红磨坊》");
    12                oscar.Add("詹妮弗?康纳利", "《美丽心灵》");
    13                oscar.Add("蕾妮?齐维格", "《BJ单身日记》");
    14 
    15                //二、删除元素
    16                oscar.Remove("詹妮弗?康纳利");
    17 
    18                //三、假如不存在元素则加入元素
    19                if (!oscar.ContainsKey("茜茜?斯派克")) oscar.Add("茜茜?斯派克", "《不伦之恋》");
    20                
    21 
    22                //四、显然容量和元素个数
    23                Console.WriteLine("元素个数: {0}", oscar.Count);
    24 
    25                //五、遍历集合
    26                Console.WriteLine("74届奥斯卡最佳女主角及其电影:");
    27                foreach (KeyValuePair<string, string> kvp in oscar)
    28                {
    29                       Console.WriteLine("姓名:{0},电影:{1}", kvp.Key, kvp.Value);
    30                }
    31 
    32               //六、得到哈希表中键的集合
    33               Dictionary<string, string>.KeyCollection keyColl = oscar.Keys;
    34               //遍历键的集合
    35               Console.WriteLine("最佳女主角:");
    36               foreach (string s in keyColl)
    37               {
    38                    Console.WriteLine(s);
    39               }
    40 
    41               //七、得到哈希表值的集合
    42               Dictionary<string, string>.ValueCollection valueColl = oscar.Values;
    43               //遍历值的集合
    44               Console.WriteLine("最佳女主角电影:");
    45               foreach (string s in valueColl)
    46               {
    47                    Console.WriteLine(s);
    48               }
    49 
    50               //八、使用TryGetValue方法获取指定键对应的值
    51               string slove = string.Empty;
    52               if (oscar.TryGetValue("朱迪?丹奇", out slove))
    53                      Console.WriteLine("我最喜欢朱迪?丹奇的电影{0}", slove);
    54               else
    55                      Console.WriteLine("没找到朱迪?丹奇的电影");
    56 
    57               //九、清空哈希表
    58               oscar.Clear();
    59               Console.ReadLine();
    60        }
    61 }
     1 //定义字典
     2                 Dictionary<string, string> d = new Dictionary<string, string>();
     3 
     4                 //添加字典的元素
     5                 for (int i = 0; i < 5; i++)
     6                 {
     7                     d.Add("key" + i, "value" + i);
     8                 }
     9 
    10                 //取值/赋值
    11                 string val = d["key1"];
    12                 d["key1"] = "new value";
    13 
    14                 //遍历key
    15                 foreach (string key in d.Keys)
    16                 {
    17                     Console.WriteLine("Key = {0}", key);
    18                 }
    19                 //遍历value
    20                 foreach (string v in d.Values)
    21                 {
    22                     Console.WriteLine("value = {0}", v);
    23                 }
    24 
    25                 //遍历value, Second Method
    26                 Dictionary<string, string>.ValueCollection valueColl = d.Values;
    27                 foreach (string s in valueColl)
    28                 {
    29                     Console.WriteLine("Second Method, Value = {0}", s);
    30                 }
    31 
    32                 //遍历字典
    33                 foreach (KeyValuePair<string, string> kvp in d)
    34                 {
    35                     Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
    36                 }
    37                 //删除元素
    38                 d.Remove("key1");
    39                 if (!d.ContainsKey("key1"))
    40                 {
    41                     Console.WriteLine("Key "key1" is not found.");
    42                 }
    43                 //判断键存在
    44                 if (d.ContainsKey("key1")) // True 
    45                 {
    46                     Console.WriteLine("An element with Key = "key1" exists.");
    47                 }

    构造函数 

    Dictionary<TKey,TValue>()

    初始化 Dictionary<TKey,TValue> 类的新实例,该实例为空且具有默认的初始容量,并使用键类型的默认相等比较器。

    Dictionary<TKey,TValue>(IDictionary<TKey,TValue>)

    初始化 Dictionary<TKey,TValue> 类的新实例,该实例包含从指定的 IDictionary<TKey,TValue> 中复制的元素并为键类型使用默认的相等比较器。

    Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>)

    初始化 Dictionary<TKey,TValue> 类的新实例,该实例包含从指定的 IDictionary<TKey,TValue> 中复制的元素并使用指定的 IEqualityComparer<T>

    Dictionary<TKey,TValue>(IEqualityComparer<TKey>)

    初始化 Dictionary<TKey,TValue> 类的新实例,该实例为空且具有默认的初始容量,并使用指定的 IEqualityComparer<T>

    Dictionary<TKey,TValue>(Int32)

    初始化 Dictionary<TKey,TValue> 类的新实例,该实例为空且具有指定的初始容量,并为键类型使用默认的相等比较器。

    Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>)

    初始化 Dictionary<TKey,TValue> 类的新实例,该实例为空且具有指定的初始容量,并使用指定的 IEqualityComparer<T>

    Dictionary<TKey,TValue>(SerializationInfo, StreamingContext)

    用序列化数据初始化 Dictionary<TKey,TValue> 类的新实例。

    属性 

    Comparer

    获取用于确定字典中的键是否相等的 IEqualityComparer<T>

    Count

    获取包含在 Dictionary<TKey,TValue> 中的键/值对的数目。

    Item[TKey]

    获取或设置与指定的键关联的值。

    Keys

    获取包含 Dictionary<TKey,TValue> 中的键的集合。

    Values

    获取包含 Dictionary<TKey,TValue> 中的值的集合。

    方法 

    Add(TKey, TValue)

    将指定的键和值添加到字典中。

    Clear()

    将所有键和值从 Dictionary<TKey,TValue> 中移除。

    ContainsKey(TKey)

    确定是否 Dictionary<TKey,TValue> 包含指定键。

    ContainsValue(TValue)

    确定 Dictionary<TKey,TValue> 是否包含特定值。

    Equals(Object)

    确定指定的对象是否等于当前对象。

    (Inherited from Object)
    GetEnumerator()

    返回循环访问 Dictionary<TKey,TValue> 的枚举数。

    GetHashCode()

    作为默认哈希函数。

    (Inherited from Object)
    GetObjectData(SerializationInfo, StreamingContext)

    实现 ISerializable 接口,并返回序列化 Dictionary<TKey,TValue> 实例所需的数据。

    GetType()

    获取当前实例的 Type

    (Inherited from Object)
    MemberwiseClone()

    创建当前 Object 的浅表副本。

    (Inherited from Object)
    OnDeserialization(Object)

    实现 ISerializable 接口,并在完成反序列化之后引发反序列化事件。

    Remove(TKey)

    从 Dictionary<TKey,TValue> 中移除所指定的键的值。

    ToString()

    返回表示当前对象的字符串。

    (Inherited from Object)
    TryGetValue(TKey, TValue)

    获取与指定键关联的值。

  • 相关阅读:
    安装VMtools vim编辑器的使用 压缩包命令 Linux下的用户管理 (第三天)
    VM虚拟机安装 常用Linux命令 网卡配置 (第二天)
    数据库的交互模式 常用的dos命令 (第一天)
    Validate US Telephone Numbers FreeCodeCamp
    Arguments Optional FreeCodeCamp
    Everything Be True FreeCodeCamp
    Binary Agents FreeCodeCamp
    Steamroller FreeCodeCamp
    Drop it FreeCodeCamp
    Smallest Common Multiple FreeCodeCamp
  • 原文地址:https://www.cnblogs.com/hushaojun/p/10604307.html
Copyright © 2011-2022 走看看