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)

    获取与指定键关联的值。

  • 相关阅读:
    三:oracle练习
    二:SQL 函数
    一:SQL基本语法
    生产者与消费者模式(理解) 进程间通信之消息队列编程
    C语言
    前端面试:基础javascript篇(二)
    Koa入门和源码分析
    前端面试:基础javascript篇(一)
    前端面试题(二)
    C复习
  • 原文地址:https://www.cnblogs.com/hushaojun/p/10604307.html
Copyright © 2011-2022 走看看