C#集合示例2009-11-03EasyData
using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{class Program{static void Main(string[] args){// Create a new dictionary of strings, with string keys.//Dictionary<string, string> openWith =new Dictionary<string, string>();// Add some elements to the dictionary. There are no // duplicate keys, but some of the values are duplicates.openWith.Add("txt", "notepad.exe");openWith.Add("bmp", "paint.exe");openWith.Add("dib", "paint.exe");openWith.Add("rtf", "wordpad.exe");// The Add method throws an exception if the new key is // already in the dictionary.try{openWith.Add("txt", "winword.exe");}catch (ArgumentException){Console.WriteLine("An element with Key = "txt" already exists.");}// The Item property is another name for the indexer, so you // can omit its name when accessing elements. Console.WriteLine("For key = "rtf", value = {0}.",openWith["rtf"]);// The indexer can be used to change the value associated// with a key.openWith["rtf"] = "winword.exe";Console.WriteLine("For key = "rtf", value = {0}.",openWith["rtf"]);// If a key does not exist, setting the indexer for that key// adds a new key/value pair.openWith["doc"] = "winword.exe";// The indexer throws an exception if the requested key is// not in the dictionary.try{Console.WriteLine("For key = "tif", value = {0}.",openWith["tif"]);}catch (KeyNotFoundException){Console.WriteLine("Key = "tif" is not found.");}// When a program often has to try keys that turn out not to// be in the dictionary, TryGetValue can be a more efficient // way to retrieve values.string value = "";if (openWith.TryGetValue("tif", out value)){Console.WriteLine("For key = "tif", value = {0}.", value);}else{Console.WriteLine("Key = "tif" is not found.");}// ContainsKey can be used to test keys before inserting // them.if (!openWith.ContainsKey("ht")){openWith.Add("ht", "hypertrm.exe");Console.WriteLine("Value added for key = "ht": {0}",openWith["ht"]);}// When you use foreach to enumerate dictionary elements,// the elements are retrieved as KeyValuePair objects.Console.WriteLine();foreach (KeyValuePair<string, string> kvp in openWith){Console.WriteLine("Key = {0}, Value = {1}",kvp.Key, kvp.Value);}// To get the values alone, use the Values property.Dictionary<string, string>.ValueCollection valueColl =openWith.Values;// The elements of the ValueCollection are strongly typed// with the type that was specified for dictionary values.Console.WriteLine();foreach (string s in valueColl){Console.WriteLine("Value = {0}", s);}// To get the keys alone, use the Keys property.Dictionary<string, string>.KeyCollection keyColl =openWith.Keys;// The elements of the KeyCollection are strongly typed// with the type that was specified for dictionary keys.Console.WriteLine();foreach (string s in keyColl){Console.WriteLine("Key = {0}", s);}// Use the Remove method to remove a key/value pair.Console.WriteLine("
Remove("doc")");openWith.Remove("doc");if (!openWith.ContainsKey("doc")){Console.WriteLine("Key "doc" is not found.");}Console.ReadKey();}}}