C# | Dictionary Class
Last Updated :
01 Sep, 2021
The Dictionary<TKey, TValue> Class in C# is a collection of Keys and Values. It is a generic collection class in the System.Collections.Generic namespace. The Dictionary <TKey, TValue> generic class provides a mapping from a set of keys to a set of values. Each addition to the dictionary consists of a value and its associated key. Retrieving a value by using its key is very fast, close to O(1) because the Dictionary class is implemented as a hash table. Every key in a Dictionary <TKey, TValue> must be unique according to the dictionary’s equality comparer.
Note: A key cannot be null, but a value can be if the value type TValue is a reference type.
Parameters:
- TKey : Denotes the type of the keys in the dictionary.
- TValue : Denotes the type of the values in the dictionary.
Since the Dictionary<TKey, TValue> is a collection of keys and values, the element type is not the type of the key or the type of the value. Instead, the element type is a KeyValuePair <TKey, TValue> of the key type and the value type.
Constructors
Constructor |
Description |
Dictionary<TKey, TValue>() |
Initializes a new instance of the Dictionary<TKey, TValue> class that is empty, has the default initial capacity, and uses the default equality comparer for the key type. |
Dictionary<TKey,TValue>(IDictionary<TKey,TValue>) |
Initializes a new instance of the Dictionary<TKey, TValue> class that contains elements copied from the specified IDictionary<TKey, TValue> and uses the default equality comparer for the key type. |
Dictionary<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) |
Initializes a new instance of the Dictionary<TKey,TValue> class that contains elements copied from the specified IDictionary<TKey,TValue> and uses the specified IEqualityComparer<T>. |
Dictionary<TKey,TValue>(IEqualityComparer<TKey>) |
Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the default initial capacity, and uses the specified IEqualityComparer<T>. |
Dictionary<TKey,TValue>(Int32) |
Initializes a new instance of the Dictionary class that is empty, has the specified initial capacity and uses the default equality comparer for the key type. |
Dictionary<TKey,TValue>(Int32, IEqualityComparer<TKey>) |
Initializes a new instance of the Dictionary<TKey,TValue> class that is empty, has the specified initial capacity, and uses the specified IEqualityComparer<T>. |
Dictionary<TKey,TValue>(SerializationInfo, StreamingContext) |
Initializes a new instance of the Dictionary<TKey,TValue> class with serialized data. |
Example:
C#
using System;
using System.Collections.Generic;
class GFG {
public static void Main()
{
Dictionary< string , string > myDict =
new Dictionary< string , string >();
myDict.Add( "1" , "C" );
myDict.Add( "2" , "C++" );
myDict.Add( "3" , "Java" );
myDict.Add( "4" , "Python" );
myDict.Add( "5" , "C#" );
myDict.Add( "6" , "HTML" );
Console.WriteLine( "Total key/value pairs" +
" in myDict are : " + myDict.Count);
Console.WriteLine( "\nThe key/value pairs" +
" in myDict are : " );
foreach (KeyValuePair< string , string > kvp in myDict)
{
Console.WriteLine( "Key = {0}, Value = {1}" ,
kvp.Key, kvp.Value);
}
}
}
|
Output:
Total key/value pairs in myDict are : 6
The key/value pairs in myDict are :
Key = 1, Value = C
Key = 2, Value = C++
Key = 3, Value = Java
Key = 4, Value = Python
Key = 5, Value = C#
Key = 6, Value = HTML
Properties
Properties |
Description |
Comparer |
Gets the IEqualityComparer<TKey, TValue> that is used to determine equality of keys for the dictionary. |
Count |
Gets the number of key/value pairs contained in the Dictionary<TKey, TValue>. |
Item[TKey] |
Gets or sets the value associated with the specified key. |
Keys |
Gets a collection containing the keys in the Dictionary<TKey, TValue>. |
Values |
Gets a collection containing the values in the Dictionary<TKey, TValue>. |
Example 1:
C#
using System;
using System.Collections.Generic;
class GFG {
public static void Main()
{
Dictionary< string , string > myDict =
new Dictionary< string , string >();
myDict.Add( "1" , "C" );
myDict.Add( "2" , "C++" );
myDict.Add( "3" , "Java" );
myDict.Add( "4" , "Python" );
myDict.Add( "5" , "C#" );
myDict.Add( "6" , "HTML" );
Console.WriteLine( "Total key/value pairs" +
" in myDict are : " + myDict.Count);
Dictionary< string , string >.KeyCollection keyColl =
myDict.Keys;
foreach ( string s in keyColl)
{
Console.WriteLine( "Key = {0}" , s);
}
}
}
|
Output:
Total key/value pairs in myDict are : 6
Key = 1
Key = 2
Key = 3
Key = 4
Key = 5
Key = 6
Example 2:
C#
using System;
using System.Collections.Generic;
class GFG {
public static void Main()
{
Dictionary< string , string > myDict =
new Dictionary< string , string >();
myDict.Add( "1" , "C" );
myDict.Add( "2" , "C++" );
myDict.Add( "3" , "Java" );
myDict.Add( "4" , "Python" );
myDict.Add( "5" , "C#" );
myDict.Add( "6" , "HTML" );
Console.WriteLine( "Total key/value pairs" +
" in myDict are : " + myDict.Count);
Dictionary< string , string >.ValueCollection valueColl =
myDict.Values;
foreach ( string s in valueColl)
{
Console.WriteLine( "Value = {0}" , s);
}
}
}
|
Output:
Total key/value pairs in myDict are : 6
Value = C
Value = C++
Value = Java
Value = Python
Value = C#
Value = HTML
Methods
Method |
Description |
Add(TKey, TValue) |
Adds the specified key and value to the dictionary. |
Clear() |
Removes all keys and values from the Dictionary<TKey, TValue>. |
ContainsKey(TKey) |
Determines whether the Dictionary<TKey, TValue> contains the specified key. |
ContainsValue(TValue) |
Determines whether the Dictionary<TKey, TValue> contains a specific value. |
Equals(Object) |
Determines whether the specified object is equal to the current object. |
GetEnumerator() |
Returns an enumerator that iterates through the Dictionary<TKey, TValue> . |
GetHashCode() |
Serves as the default hash function. |
GetObjectData(SerializationInfo, StreamingContext) |
Implements the ISerializable interface and returns the data needed to serialize the Dictionary<TKey,TValue> instance. |
GetType() |
Gets the Type of the current instance. |
MemberwiseClone() |
Creates a shallow copy of the current Object. |
OnDeserialization(Object) |
Implements the ISerializable interface and raises the deserialization event when the deserialization is complete. |
Remove(TKey) |
Removes the value with the specified key from the Dictionary<TKey, TValue>. |
ToString() |
Returns a string that represents the current object. |
TryGetValue(TKey, TValue) |
Gets the value associated with the specified key. |
Example 1:
C#
using System;
using System.Collections.Generic;
class GFG {
public static void Main()
{
Dictionary< string , string > myDict =
new Dictionary< string , string >();
myDict.Add( "1" , "C" );
myDict.Add( "2" , "C++" );
myDict.Add( "3" , "Java" );
myDict.Add( "4" , "Python" );
myDict.Add( "5" , "C#" );
myDict.Add( "6" , "HTML" );
Console.WriteLine( "Total key/value pairs " +
"in myDict are : " + myDict.Count);
myDict.Clear();
Console.WriteLine( "Total key/value pairs in " +
"myDict after Clear() operation are : " +
myDict.Count);
}
}
|
Output:
Total key/value pairs in myDict are : 6
Total key/value pairs in myDict after Clear() operation are : 0
Example 2:
C#
using System;
using System.Collections.Generic;
class GFG {
public static void Main()
{
Dictionary< string , string > myDict =
new Dictionary< string , string >();
myDict.Add( "1" , "C" );
myDict.Add( "2" , "C++" );
myDict.Add( "3" , "Java" );
myDict.Add( "4" , "Python" );
myDict.Add( "5" , "C#" );
myDict.Add( "6" , "HTML" );
Console.WriteLine( "Total key/value pairs " +
"in myDict are : " + myDict.Count);
myDict.Remove( "Russia" );
Console.WriteLine( "Total key/value pairs in" +
" myDict after Remove() operation are : " +
myDict.Count);
}
}
|
Output:
Total key/value pairs in myDict are : 6
Total key/value pairs in myDict after Remove() operation are : 6
Reference:
Please Login to comment...