La clase Dictionary<TKey, TValue> en C# es una colección de claves y valores. Es una clase de colección genérica en el espacio de nombres System.Collections.Generic. La clase genérica Dictionary <TKey, TValue> proporciona una asignación de un conjunto de claves a un conjunto de valores. Cada adición al diccionario consta de un valor y su clave asociada. Recuperar un valor usando su clave es muy rápido, cercano a O(1) porque la clase Dictionary se implementa como una tabla hash. Cada clave en un diccionario <TKey, TValue> debe ser única de acuerdo con el comparador de igualdad del diccionario.
Nota: Una clave no puede ser nula, pero un valor puede serlo si el tipo de valor TValue es un tipo de referencia.
Parámetros:
- TKey : Indica el tipo de las claves en el diccionario.
- TValue : Indica el tipo de los valores en el diccionario.
Dado que Dictionary<TKey, TValue> es una colección de claves y valores, el tipo de elemento no es el tipo de la clave o el tipo del valor. En cambio, el tipo de elemento es un KeyValuePair <TKey, TValue> del tipo de clave y el tipo de valor.
Constructores
Constructor | Descripción |
---|---|
Diccionario<TKey, TValor>() | Inicializa una nueva instancia de la clase Dictionary<TKey, TValue> que está vacía, tiene la capacidad inicial predeterminada y usa el comparador de igualdad predeterminado para el tipo de clave. |
Diccionario<TKey,TValue>(IDictionary<TKey,TValue>) | Inicializa una nueva instancia de la clase Dictionary<TKey, TValue> que contiene elementos copiados del IDictionary<TKey, TValue> especificado y usa el comparador de igualdad predeterminado para el tipo de clave. |
Diccionario<TKey,TValue>(IDictionary<TKey,TValue>, IEqualityComparer<TKey>) | Inicializa una nueva instancia de la clase Dictionary<TKey,TValue> que contiene elementos copiados del IDictionary<TKey,TValue> especificado y usa el IEqualityComparer<T> especificado. |
Diccionario<TKey,TValue>(IEqualityComparer<TKey>) | Inicializa una nueva instancia de la clase Dictionary<TKey,TValue> que está vacía, tiene la capacidad inicial predeterminada y usa el IEqualityComparer<T> especificado. |
Diccionario<TKey,TValue>(Int32) | Inicializa una nueva instancia de la clase Dictionary que está vacía, tiene la capacidad inicial especificada y usa el comparador de igualdad predeterminado para el tipo de clave. |
Diccionario<TKey,TValue>(Int32, IEqualityComparer<TKey>) | Inicializa una nueva instancia de la clase Dictionary<TKey,TValue> que está vacía, tiene la capacidad inicial especificada y usa el IEqualityComparer<T> especificado. |
Diccionario<TKey,TValue>(SerializationInfo, StreamingContext) | Inicializa una nueva instancia de la clase Dictionary<TKey,TValue> con datos serializados. |
Ejemplo:
C#
// C# code to create a Dictionary using System; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Create a new dictionary of // strings, with string keys. Dictionary<string, string> myDict = new Dictionary<string, string>(); // Adding key/value pairs in myDict myDict.Add("1", "C"); myDict.Add("2", "C++"); myDict.Add("3", "Java"); myDict.Add("4", "Python"); myDict.Add("5", "C#"); myDict.Add("6", "HTML"); // To get count of key/value pairs in myDict Console.WriteLine("Total key/value pairs"+ " in myDict are : " + myDict.Count); // Displaying the key/value pairs in myDict 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); } } }
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
Propiedades
Propiedades | Descripción |
---|---|
Comparador | Obtiene el IEqualityComparer<TKey, TValue> que se usa para determinar la igualdad de claves para el diccionario. |
Contar | Obtiene el número de pares clave/valor contenidos en Dictionary<TKey, TValue>. |
Artículo[TKey] | Obtiene o establece el valor asociado a la clave especificada. |
Llaves | Obtiene una colección que contiene las claves en Dictionary<TKey, TValue>. |
Valores | Obtiene una colección que contiene los valores en Dictionary<TKey, TValue>. |
Ejemplo 1:
C#
// C# code to get the keys // in the Dictionary using System; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Create a new dictionary of // strings, with string keys. Dictionary<string, string> myDict = new Dictionary<string, string>(); // Adding key/value pairs in myDict myDict.Add("1", "C"); myDict.Add("2", "C++"); myDict.Add("3", "Java"); myDict.Add("4", "Python"); myDict.Add("5", "C#"); myDict.Add("6", "HTML"); // To get count of key/value pairs in myDict Console.WriteLine("Total key/value pairs"+ " in myDict are : " + myDict.Count); // To get the keys alone, use the Keys property. Dictionary<string, string>.KeyCollection keyColl = myDict.Keys; // The elements of the KeyCollection // are strongly typed with the type // that was specified for dictionary keys. foreach(string s in keyColl) { Console.WriteLine("Key = {0}", s); } } }
Total key/value pairs in myDict are : 6 Key = 1 Key = 2 Key = 3 Key = 4 Key = 5 Key = 6
Ejemplo 2:
C#
// C# code to get the values // in the Dictionary using System; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Create a new dictionary of // strings, with string keys. Dictionary<string, string> myDict = new Dictionary<string, string>(); // Adding key/value pairs in myDict myDict.Add("1", "C"); myDict.Add("2", "C++"); myDict.Add("3", "Java"); myDict.Add("4", "Python"); myDict.Add("5", "C#"); myDict.Add("6", "HTML"); // To get count of key/value pairs in myDict Console.WriteLine("Total key/value pairs"+ " in myDict are : " + myDict.Count); // To get the values alone, use the Values property. Dictionary<string, string>.ValueCollection valueColl = myDict.Values; // The elements of the ValueCollection // are strongly typed with the type // that was specified for dictionary values. foreach(string s in valueColl) { Console.WriteLine("Value = {0}", s); } } }
Total key/value pairs in myDict are : 6 Value = C Value = C++ Value = Java Value = Python Value = C# Value = HTML
Métodos
Método | Descripción |
---|---|
Agregar (clave T, valor de TV) | Agrega la clave y el valor especificados al diccionario. |
Claro() | Elimina todas las claves y valores del Diccionario<TKey, TValue>. |
Contiene clave (TKey) | Determina si Dictionary<TKey, TValue> contiene la clave especificada. |
ContieneValor(TValor) | Determina si Dictionary<TKey, TValue> contiene un valor específico. |
Es igual a (Objeto) | Determina si el objeto especificado es igual al objeto actual. |
ObtenerEnumerador() | Devuelve un enumerador que itera a través de Dictionary<TKey, TValue> . |
Obtener código hash() | Sirve como la función hash predeterminada. |
GetObjectData(SerializationInfo, StreamingContext) | Implementa la interfaz ISerializable y devuelve los datos necesarios para serializar la instancia de Dictionary<TKey,TValue>. |
ObtenerTipo() | Obtiene el Tipo de la instancia actual. |
MemberwiseClone() | Crea una copia superficial del objeto actual. |
OnDeserialization(Objeto) | Implementa la interfaz ISerializable y genera el evento de deserialización cuando se completa la deserialización. |
Eliminar (Tecla T) | Elimina el valor con la clave especificada de Dictionary<TKey, TValue>. |
Enstringr() | Devuelve una string que representa el objeto actual. |
TryGetValue(TKey, TValue) | Obtiene el valor asociado a la clave especificada. |
Ejemplo 1:
C#
// C# code to remove all entries // from Dictionary using System; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Create a new dictionary of // strings, with string keys. Dictionary<string, string> myDict = new Dictionary<string, string>(); // Adding key/value pairs in myDict myDict.Add("1", "C"); myDict.Add("2", "C++"); myDict.Add("3", "Java"); myDict.Add("4", "Python"); myDict.Add("5", "C#"); myDict.Add("6", "HTML"); // To get count of key/value pairs in myDict Console.WriteLine("Total key/value pairs "+ "in myDict are : " + myDict.Count); myDict.Clear(); // To get count of key/value pairs in myDict Console.WriteLine("Total key/value pairs in "+ "myDict after Clear() operation are : " + myDict.Count); } }
Total key/value pairs in myDict are : 6 Total key/value pairs in myDict after Clear() operation are : 0
Ejemplo 2:
C#
// C# code to remove the entry with // the specified key from the Dictionary using System; using System.Collections.Generic; class GFG { // Driver code public static void Main() { // Create a new dictionary of // strings, with string keys. Dictionary<string, string> myDict = new Dictionary<string, string>(); // Adding key/value pairs in myDict myDict.Add("1", "C"); myDict.Add("2", "C++"); myDict.Add("3", "Java"); myDict.Add("4", "Python"); myDict.Add("5", "C#"); myDict.Add("6", "HTML"); // To get count of key/value pairs in myDict Console.WriteLine("Total key/value pairs "+ "in myDict are : " + myDict.Count); // Remove the entry with the // specified key from the Dictionary myDict.Remove("Russia"); // To get count of key/value pairs in myDict Console.WriteLine("Total key/value pairs in"+ " myDict after Remove() operation are : " + myDict.Count); } }
Total key/value pairs in myDict are : 6 Total key/value pairs in myDict after Remove() operation are : 6
Referencia:
Publicación traducida automáticamente
Artículo escrito por rupesh_rao y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA