Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase StringDictionary

 

Publicado: noviembre de 2016

Implementa una tabla hash con la clave y el valor fuertemente tipado de forma que sean cadenas en lugar de objetos.

Espacio de nombres:   System.Collections.Specialized
Ensamblado:  System (en System.dll)

System.Object
  System.Collections.Specialized.StringDictionary

[SerializableAttribute]
public class StringDictionary : IEnumerable

NombreDescripción
System_CAPS_pubmethodStringDictionary()

Inicializa una nueva instancia de la clase StringDictionary.

NombreDescripción
System_CAPS_pubpropertyCount

Obtiene el número de pares de clave y valor incluidos en StringDictionary.

System_CAPS_pubpropertyIsSynchronized

Obtiene un valor que indica si el acceso a la interfaz StringDictionary está sincronizado (es seguro para subprocesos).

System_CAPS_pubpropertyItem[String]

Obtiene o establece el valor asociado a la clave especificada.

System_CAPS_pubpropertyKeys

Obtiene una colección de claves incluidas en StringDictionary.

System_CAPS_pubpropertySyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a StringDictionary.

System_CAPS_pubpropertyValues

Obtiene una colección de valores incluidos en StringDictionary.

NombreDescripción
System_CAPS_pubmethodAdd(String, String)

Agrega una entrada con la clave y el valor especificados a StringDictionary.

System_CAPS_pubmethodClear()

Quita todas las entradas de StringDictionary.

System_CAPS_pubmethodContainsKey(String)

Determina si StringDictionary contiene una clave específica.

System_CAPS_pubmethodContainsValue(String)

Determina si StringDictionary contiene un valor específico.

System_CAPS_pubmethodCopyTo(Array, Int32)

Copia los valores del diccionario de cadenas en una instancia de Array unidimensional en el índice especificado.

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetEnumerator()

Devuelve un enumerador que recorre en iteración el diccionario de cadenas.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodRemove(String)

Quita la entrada con la clave especificada del diccionario de cadenas.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

NombreDescripción
System_CAPS_pubmethodAsParallel()

Sobrecargado. Habilita la paralelización de una consulta.(Definido por ParallelEnumerable).

System_CAPS_pubmethodAsQueryable()

Sobrecargado. Convierte un IEnumerable para un IQueryable.(Definido por Queryable).

System_CAPS_pubmethodCast<TResult>()

Convierte los elementos de un IEnumerable al tipo especificado.(Definido por Enumerable).

System_CAPS_pubmethodOfType<TResult>()

Filtra los elementos de un IEnumerable basado en un tipo especificado.(Definido por Enumerable).

Una clave no puede ser null, pero un valor Sí.

La clave se controla en mayúsculas y minúsculas; se convierte a minúsculas antes de utilizarla con el diccionario de cadenas.

En la versión 1.0 de .NET Framework, esta clase utiliza comparaciones de cadenas dependientes de la referencia cultural. Sin embargo, en .NET Framework versión 1.1 y versiones posterior, esta clase usa CultureInfo.InvariantCulture al comparar cadenas. Para obtener más información sobre cómo afecta la referencia cultural a la ordenación y comparación, consulte Realizar operaciones de cadenas que no distinguen entre referencias culturales.

El ejemplo de código siguiente muestra algunas de las propiedades y métodos de StringDictionary.

using System;
using System.Collections;
using System.Collections.Specialized;

public class SamplesStringDictionary  {

   public static void Main()  {

      // Creates and initializes a new StringDictionary.
      StringDictionary myCol = new StringDictionary();
      myCol.Add( "red", "rojo" );
      myCol.Add( "green", "verde" );
      myCol.Add( "blue", "azul" );

      // Display the contents of the collection using foreach. This is the preferred method.
      Console.WriteLine( "Displays the elements using foreach:" );
      PrintKeysAndValues1( myCol );

      // Display the contents of the collection using the enumerator.
      Console.WriteLine( "Displays the elements using the IEnumerator:" );
      PrintKeysAndValues2( myCol );

      // Display the contents of the collection using the Keys, Values, Count, and Item properties.
      Console.WriteLine( "Displays the elements using the Keys, Values, Count, and Item properties:" );
      PrintKeysAndValues3( myCol );

      // Copies the StringDictionary to an array with DictionaryEntry elements.
      DictionaryEntry[] myArr = new DictionaryEntry[myCol.Count];
      myCol.CopyTo( myArr, 0 );

      // Displays the values in the array.
      Console.WriteLine( "Displays the elements in the array:" );
      Console.WriteLine( "   KEY        VALUE" );
      for ( int i = 0; i < myArr.Length; i++ )
         Console.WriteLine( "   {0,-10} {1}", myArr[i].Key, myArr[i].Value );
      Console.WriteLine();

      // Searches for a value.
      if ( myCol.ContainsValue( "amarillo" ) )
         Console.WriteLine( "The collection contains the value \"amarillo\"." );
      else
         Console.WriteLine( "The collection does not contain the value \"amarillo\"." );
      Console.WriteLine();

      // Searches for a key and deletes it.
      if ( myCol.ContainsKey( "green" ) )
         myCol.Remove( "green" );
      Console.WriteLine( "The collection contains the following elements after removing \"green\":" );
      PrintKeysAndValues1( myCol );

      // Clears the entire collection.
      myCol.Clear();
      Console.WriteLine( "The collection contains the following elements after it is cleared:" );
      PrintKeysAndValues1( myCol );

   }

   // Uses the foreach statement which hides the complexity of the enumerator.
   // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection.
   public static void PrintKeysAndValues1( StringDictionary myCol )  {
      Console.WriteLine( "   KEY                       VALUE" );
      foreach ( DictionaryEntry de in myCol )
         Console.WriteLine( "   {0,-25} {1}", de.Key, de.Value );
      Console.WriteLine();
   }

   // Uses the enumerator. 
   // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection.
   public static void PrintKeysAndValues2( StringDictionary myCol )  {
      IEnumerator myEnumerator = myCol.GetEnumerator();
      DictionaryEntry de;
      Console.WriteLine( "   KEY                       VALUE" );
      while ( myEnumerator.MoveNext() )  {
         de = (DictionaryEntry) myEnumerator.Current;
         Console.WriteLine( "   {0,-25} {1}", de.Key, de.Value );
      }
      Console.WriteLine();
   }

   // Uses the Keys, Values, Count, and Item properties.
   public static void PrintKeysAndValues3( StringDictionary myCol )  {
      String[] myKeys = new String[myCol.Count];
      myCol.Keys.CopyTo( myKeys, 0 );

      Console.WriteLine( "   INDEX KEY                       VALUE" );
      for ( int i = 0; i < myCol.Count; i++ )
         Console.WriteLine( "   {0,-5} {1,-25} {2}", i, myKeys[i], myCol[myKeys[i]] );
      Console.WriteLine();
   }

}

/*
This code produces the following output.

Displays the elements using foreach:
   KEY                       VALUE
   red                       rojo
   blue                      azul
   green                     verde

Displays the elements using the IEnumerator:
   KEY                       VALUE
   red                       rojo
   blue                      azul
   green                     verde

Displays the elements using the Keys, Values, Count, and Item properties:
   INDEX KEY                       VALUE
   0     red                       rojo
   1     blue                      azul
   2     green                     verde

Displays the elements in the array:
   KEY        VALUE
   red        rojo
   blue       azul
   green      verde

The collection does not contain the value "amarillo".

The collection contains the following elements after removing "green":
   KEY                       VALUE
   red                       rojo
   blue                      azul

The collection contains the following elements after it is cleared:
   KEY                       VALUE

*/

Plataforma universal de Windows
Disponible desde 10
.NET Framework
Disponible desde 1.1

Público estático (Shared en Visual Basic) de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Esta implementación no proporciona un sincronizados contenedor (es seguro para subprocesos) para un StringDictionary, pero las clases derivadas pueden crear sus propias versiones sincronizadas de la StringDictionary con el SyncRoot propiedad.

Enumerar una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción. Con el fin de garantizar la seguridad para la ejecución de subprocesos durante la enumeración, se puede bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.

Volver al principio
Mostrar: