A dictionary in C#, is a generic data type that stores a set of values with their corresponding keys internally for faster data retrieval.

The operation of finding the value associated with a key is called lookup or indexing.

Dictionay provide type safety and type casting(Generic concept)

Dictionary( Dictionary<TKey, TValue>) is a generic type, Hashtable is not

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Dictionary

{

class Program

{

static void Main(string[] args)

{

try

{

Dictionary<string, Int16> list = new Dictionary<string, Int16>();

list.Add("Manu", 1);

list.Add("Akhtar", 2);

list.Add("Pitambar", 3);

list.Add("Ratan", 4);

// list.Add("Manu", 1);// An item with the same key has already been added. argument exception was unhandeld

//"is check the pair of values and keys"

list["Manu"] = 11; // insert new value and keys into dictionary.

//If keys our values exists it will update this, Its called Item property

Console.WriteLine("Data are given below:================");

foreach (KeyValuePair<string, Int16> member in list)

{

Console.WriteLine("key = {0}, value = {1}", member.Key, member.Value);

}

Console.WriteLine("Count ={0}", list.Count());

Dictionary<string, Int16>.KeyCollection keys = list.Keys;

Console.WriteLine("keys are given below:================");

foreach (string key in keys)

{

Console.WriteLine("Key: {0}", key);

}

Dictionary<string, Int16>.ValueCollection values = list.Values; // return object of value collection type

Console.WriteLine("Value are given below:================");

foreach (Int16 value in values)

{

Console.WriteLine("Values: {0}", value);

}

Console.WriteLine("Remove method :");

// list.Remove("Manu");

foreach (string key in keys)

{

Console.WriteLine("Key: {0}", key);

}

Console.WriteLine("Clear method :");

//list.Clear();

foreach (string key in keys)

{

Console.WriteLine("Key :{0}", key);

}

if (list.ContainsKey("Manu"))

{

Console.WriteLine("yes key exist in dictionary");

}

if (list.ContainsValue(3))

{

Console.WriteLine("yes value exist in dictionary");

}

// list.Add("Charpcorner", 7);

// Copy Dictionary Data into new Dictionary

Dictionary<string, Int16> copydict = new Dictionary<string, Int16>(list);

list.Add("Charpcorner", 6);

Console.WriteLine("New Dictionary coydict Data is::::");

foreach (var v in copydict)

{

Console.WriteLine(v);

}

Console.WriteLine("Add new item will not affect to copy dictionary item");

foreach (string key in keys)

{

Console.WriteLine("Key: {0}", key);

}

}

catch (Exception e)

{

Console.WriteLine(e.Message);

}

Console.ReadKey();

}

}

}