/////////////////////////////////////////////////////////////////////// // Dictionary.cs - demo basic properties of Dictionary<TKey, TValue> // // // // Jim Fawcett, CSE681 - Algorithms and DataStructures, Fall 2010 // /////////////////////////////////////////////////////////////////////// /* * System.Collections.Generic.Dictionary is a generic wrapper for a hashtable, * with TKey and TValue generic types, provides Add, Remove, Clear, * ContainsKey, ContainsValue, and GetEnumerator. Dictionary also provides * properties: Count, Item, Keys, and Values. Item is indexed by a key. * Add, Remove, Item, etc, are O(1). */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace NetContainers { class DemoDictionary { static void Main(string[] args) { Utility.showTitle("Demonstrate Collections.Generic.Dictionary"); Dictionary<string, int> dict = new Dictionary<string, int>(); dict["zero"] = 0; dict["one"] = 1; dict["two"] = 2; dict["three"] = 3; dict["four"] = 4; Console.Write("\n the value of key \"two\" is {0}\n", dict["two"]); Console.Write("\n the dictionary holds keys:"); Console.Write("\n "); foreach (string key in dict.Keys) Console.Write("{0} ", key); Console.Write("\n"); Console.Write("\n the dictionary holds values:"); Console.Write("\n "); foreach (string key in dict.Keys) Console.Write("{0} ", dict[key]); Console.Write("\n"); Console.Write("\n Dictionary values can be containers:"); int[] temp1 = { 1, 2, 3, 4, 5 }; List<int> l1 = new List<int>(temp1); int[] temp2 = { 2, 3, 4, 5 }; List<int> l2 = new List<int>(temp2); Dictionary<string, List<int>> dictColl = new Dictionary<string, List<int>>(); dictColl.Add("first", l1); dictColl.Add("second", l2); Console.Write("\n the type of dictColl is Dictionary<string, List<int>>"); Console.Write("\n it contains:"); foreach (string key in dictColl.Keys) { Console.Write("\n {0}:", key); foreach (int i in dictColl[key]) Console.Write(" {0}", i); } Console.Write("\n\n"); } } }