using System;
using System.Collections .Generic ;
namespace DictionaryExample
{
class Program
{
static void Main( string[ ] args)
{
// Create a dictionary in which both keys and values are strings.
Dictionary< string, string> surfDict = new Dictionary< string, string> ( ) ;
// Add some items to the dictionary: each has a key and a value.
surfDict.Add ( "Mavericks" , "Big waves, cold water, and lots of Great White Sharks!" ) ;
surfDict.Add ( "Teahupoo" , "Heaviest wave in the world, in Tahiti, so it is warm but very shallow." ) ;
surfDict.Add ( "Jaws" , "Warm water break that reaches 60 feet high, north shore of Maui, HI" ) ;
surfDict.Add ( "Nazare" , "Worlds biggest surfed wave, up to 100+ feet, in Portugal" ) ;
surfDict.Add ( "Cocoa Beach" , "Small, crappy wave in Cocoa Beach FL, home of Kelly Slater and lots of small sharks." ) ;
// See if the dictionary contains a particular key.
Console.WriteLine ( "Use the ContainsKey method to see if a surf breaks exists in your surf break Dictionary:" ) ;
Console.WriteLine ( "Contains key Mavericks " + surfDict.ContainsKey ( "Mavericks" ) ) ;
Console.WriteLine ( "Contains key Teahupoo " + surfDict.ContainsKey ( "Teahupoo" ) ) ;
Console.WriteLine ( "Contains key Nahant Beach " + surfDict.ContainsKey ( "Nahant Beach" ) ) ;
// Iterate the dictionary's contents with foreach.
// Note that you're iterating pairs of keys and values,
// using the KeyValuePair<t,u> type.
Console.WriteLine ( "\n Contents of the dictionary:" ) ;
foreach ( KeyValuePair< string, string> pair in surfDict)
{
// Because the key is a string, you can use string methods
Console.WriteLine ( "Key: " + pair.Key .PadRight ( 8 ) + " - Value: " + pair.Value ) ;
}
// List the keys, remember they are in no particular order.
Console.WriteLine ( "\n Just the keys:" ) ;
// Dictionary<TKey, TValue>.KeyCollection is a collection of just the keys,
// in this case strings. So here's how to retrieve the keys:
Dictionary< string, string> .KeyCollection keys = surfDict.Keys ;
foreach( string key in keys)
{
Console.WriteLine ( "Key: " + key) ;
}
// List the values, which are in same order as key collection above.
Console.WriteLine ( "\n Just the values:" ) ;
Dictionary< string, string> .ValueCollection values = surfDict.Values ;
foreach ( string value in values)
{
Console.WriteLine ( "Value: " + value) ;
}
Console.Write ( "\n Number of items in the dictionary: " + surfDict.Count ) ;
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCm5hbWVzcGFjZSBEaWN0aW9uYXJ5RXhhbXBsZQp7CiAgY2xhc3MgUHJvZ3JhbQogIHsKICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgIHsKICAgICAgLy8gQ3JlYXRlIGEgZGljdGlvbmFyeSBpbiB3aGljaCBib3RoIGtleXMgYW5kIHZhbHVlcyBhcmUgc3RyaW5ncy4KICAgICAgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4gc3VyZkRpY3QgPSBuZXcgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4oKTsKCiAgICAgIC8vIEFkZCBzb21lIGl0ZW1zIHRvIHRoZSBkaWN0aW9uYXJ5OiBlYWNoIGhhcyBhIGtleSBhbmQgYSB2YWx1ZS4KICAgICAgc3VyZkRpY3QuQWRkICgiTWF2ZXJpY2tzIiwgIkJpZyB3YXZlcywgY29sZCB3YXRlciwgYW5kIGxvdHMgb2YgR3JlYXQgV2hpdGUgU2hhcmtzISIpOwogICAgICBzdXJmRGljdC5BZGQgKCJUZWFodXBvbyIsICJIZWF2aWVzdCB3YXZlIGluIHRoZSB3b3JsZCwgaW4gVGFoaXRpLCBzbyBpdCBpcyB3YXJtIGJ1dCB2ZXJ5IHNoYWxsb3cuIik7CiAgICAgIHN1cmZEaWN0LkFkZCAoIkphd3MiLCAiV2FybSB3YXRlciBicmVhayB0aGF0IHJlYWNoZXMgNjAgZmVldCBoaWdoLCBub3J0aCBzaG9yZSBvZiBNYXVpLCBISSIpOwogICAgICBzdXJmRGljdC5BZGQgKCJOYXphcmUiLCAiV29ybGRzIGJpZ2dlc3Qgc3VyZmVkIHdhdmUsIHVwIHRvIDEwMCsgZmVldCwgaW4gUG9ydHVnYWwiKTsKICAgICAgc3VyZkRpY3QuQWRkICgiQ29jb2EgQmVhY2giLCAiU21hbGwsIGNyYXBweSB3YXZlIGluIENvY29hIEJlYWNoIEZMLCBob21lIG9mIEtlbGx5IFNsYXRlciBhbmQgbG90cyBvZiBzbWFsbCBzaGFya3MuIik7CgoKICAgICAgLy8gU2VlIGlmIHRoZSBkaWN0aW9uYXJ5IGNvbnRhaW5zIGEgcGFydGljdWxhciBrZXkuCiAgICAgIENvbnNvbGUuV3JpdGVMaW5lICgiVXNlIHRoZSBDb250YWluc0tleSBtZXRob2QgdG8gc2VlIGlmIGEgc3VyZiBicmVha3MgZXhpc3RzIGluIHlvdXIgc3VyZiBicmVhayBEaWN0aW9uYXJ5OiIpOwogICAgICBDb25zb2xlLldyaXRlTGluZSAoIkNvbnRhaW5zIGtleSBNYXZlcmlja3MgICAgICAgIiArIHN1cmZEaWN0LkNvbnRhaW5zS2V5ICgiTWF2ZXJpY2tzIikpOwogICAgICBDb25zb2xlLldyaXRlTGluZSAoIkNvbnRhaW5zIGtleSBUZWFodXBvbyAgICAgIiArIHN1cmZEaWN0LkNvbnRhaW5zS2V5ICgiVGVhaHVwb28iKSk7CiAgICAgIENvbnNvbGUuV3JpdGVMaW5lICgiQ29udGFpbnMga2V5IE5haGFudCBCZWFjaCAiICsgc3VyZkRpY3QuQ29udGFpbnNLZXkgKCJOYWhhbnQgQmVhY2giKSk7CgogICAgICAvLyBJdGVyYXRlIHRoZSBkaWN0aW9uYXJ5J3MgY29udGVudHMgd2l0aCBmb3JlYWNoLgogICAgICAvLyBOb3RlIHRoYXQgeW91J3JlIGl0ZXJhdGluZyBwYWlycyBvZiBrZXlzIGFuZCB2YWx1ZXMsCiAgICAgIC8vIHVzaW5nIHRoZSBLZXlWYWx1ZVBhaXI8dCx1PiB0eXBlLgogICAgICBDb25zb2xlLldyaXRlTGluZSAoIlxuQ29udGVudHMgb2YgdGhlIGRpY3Rpb25hcnk6Iik7CiAgICAgIGZvcmVhY2ggKEtleVZhbHVlUGFpcjxzdHJpbmcsIHN0cmluZz4gcGFpciBpbiBzdXJmRGljdCkKICAgICAgewogICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBrZXkgaXMgYSBzdHJpbmcsIHlvdSBjYW4gdXNlIHN0cmluZyBtZXRob2RzCiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lICgiS2V5OiAiICsgcGFpci5LZXkuUGFkUmlnaHQoOCkgKyAiIC0gIFZhbHVlOiAiICsgcGFpci5WYWx1ZSk7CiAgICAgIH0KCiAgICAgIC8vIExpc3QgdGhlIGtleXMsIHJlbWVtYmVyIHRoZXkgYXJlIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIuCiAgICAgIENvbnNvbGUuV3JpdGVMaW5lICgiXG5KdXN0IHRoZSBrZXlzOiIpOwoKICAgICAgLy8gRGljdGlvbmFyeTxUS2V5LCBUVmFsdWU+LktleUNvbGxlY3Rpb24gaXMgYSBjb2xsZWN0aW9uIG9mIGp1c3QgdGhlIGtleXMsCiAgICAgLy8gaW4gdGhpcyBjYXNlIHN0cmluZ3MuIFNvIGhlcmUncyBob3cgdG8gcmV0cmlldmUgdGhlIGtleXM6CiAgICAgIERpY3Rpb25hcnk8c3RyaW5nLCBzdHJpbmc+LktleUNvbGxlY3Rpb24ga2V5cyA9IHN1cmZEaWN0LktleXM7CiAgICAgIGZvcmVhY2goc3RyaW5nIGtleSBpbiBrZXlzKQogICAgICB7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lICgiS2V5OiAiICsga2V5KTsKICAgICAgfQoKICAgICAgLy8gTGlzdCB0aGUgdmFsdWVzLCB3aGljaCBhcmUgaW4gc2FtZSBvcmRlciBhcyBrZXkgY29sbGVjdGlvbiBhYm92ZS4KICAgICAgQ29uc29sZS5Xcml0ZUxpbmUgKCJcbkp1c3QgdGhlIHZhbHVlczoiKTsKICAgICAgRGljdGlvbmFyeTxzdHJpbmcsIHN0cmluZz4uVmFsdWVDb2xsZWN0aW9uIHZhbHVlcyA9IHN1cmZEaWN0LlZhbHVlczsKICAgICAgZm9yZWFjaCAoc3RyaW5nIHZhbHVlIGluIHZhbHVlcykKICAgICAgewogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSAoIlZhbHVlOiAiICsgdmFsdWUpOwogICAgICB9CgogICAgICBDb25zb2xlLldyaXRlICgiXG5OdW1iZXIgb2YgaXRlbXMgaW4gdGhlIGRpY3Rpb25hcnk6ICIgKyBzdXJmRGljdC5Db3VudCk7CgogICAgfQogIH0KfQ==
stdout
Use the ContainsKey method to see if a surf breaks exists in your surf break Dictionary:
Contains key Mavericks True
Contains key Teahupoo True
Contains key Nahant Beach False
Contents of the dictionary:
Key: Mavericks - Value: Big waves, cold water, and lots of Great White Sharks!
Key: Teahupoo - Value: Heaviest wave in the world, in Tahiti, so it is warm but very shallow.
Key: Jaws - Value: Warm water break that reaches 60 feet high, north shore of Maui, HI
Key: Nazare - Value: Worlds biggest surfed wave, up to 100+ feet, in Portugal
Key: Cocoa Beach - Value: Small, crappy wave in Cocoa Beach FL, home of Kelly Slater and lots of small sharks.
Just the keys:
Key: Mavericks
Key: Teahupoo
Key: Jaws
Key: Nazare
Key: Cocoa Beach
Just the values:
Value: Big waves, cold water, and lots of Great White Sharks!
Value: Heaviest wave in the world, in Tahiti, so it is warm but very shallow.
Value: Warm water break that reaches 60 feet high, north shore of Maui, HI
Value: Worlds biggest surfed wave, up to 100+ feet, in Portugal
Value: Small, crappy wave in Cocoa Beach FL, home of Kelly Slater and lots of small sharks.
Number of items in the dictionary: 5