C# | Clase de diccionario – Part 2

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);
        }
    }
}
Producción: 

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);
        }
    }
}
Producción: 

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);
        }
    }
}
Producción: 

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);
    }
}
Producción: 

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);
    }
}
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *