Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. |
Traducción
Original
|
StringDictionary (Clase)
Implementa una tabla hash con la clave y el valor con establecimiento inflexible de tipos de forma que sean cadenas en lugar de objetos.
Ensamblado: System (en System.dll)
El tipo StringDictionary expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
|
StringDictionary | Inicializa una nueva instancia de la clase StringDictionary. |
| Nombre | Descripción | |
|---|---|---|
|
Count | Obtiene el número de pares de clave y valor incluidos en StringDictionary. |
|
IsSynchronized | Obtiene un valor que indica si el acceso a StringDictionary está sincronizado (es seguro para la ejecución de subprocesos). |
|
Item | Obtiene o establece el valor asociado a la clave especificada. |
|
Keys | Obtiene una colección de claves incluidas en StringDictionary. |
|
SyncRoot | Obtiene un objeto que se puede utilizar para sincronizar el acceso a StringDictionary. |
|
Values | Obtiene una colección de valores incluidos en StringDictionary. |
| Nombre | Descripción | |
|---|---|---|
|
Add | Agrega una entrada con la clave y el valor especificados a la clase StringDictionary. |
|
Clear | Quita todas las entradas de StringDictionary. |
|
ContainsKey | Determina si StringDictionary contiene una clave específica. |
|
ContainsValue | Determina si StringDictionary contiene un valor específico. |
|
CopyTo | Copia los valores del diccionario de cadenas en una instancia de Array unidimensional en el índice especificado. |
|
Equals(Object) | Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object). |
|
Finalize | Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object). |
|
GetEnumerator | Devuelve un enumerador que recorre en iteración el diccionario de cadenas. |
|
GetHashCode | Actúa como función hash para un tipo concreto. (Se hereda de Object). |
|
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). |
|
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). |
|
Remove | Quita la entrada con la clave especificada del diccionario de cadenas. |
|
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
| Nombre | Descripción | |
|---|---|---|
|
AsParallel | Habilita la paralelización de una consulta. (Definido por ParallelEnumerable). |
|
AsQueryable | Convierte una interfaz IEnumerable en IQueryable. (Definido por Queryable). |
|
Cast<TResult> | Convierte los elementos de IEnumerable en el tipo especificado. (Definido por Enumerable). |
|
OfType<TResult> | Filtra los elementos de IEnumerable en función de un tipo especificado. (Definido por Enumerable). |
Una clave no puede ser null, pero un valor sí.
La clave se controla de forma que no se distinguen mayúsculas de minúsculas y se convierte a minúsculas antes de utilizarla con el diccionario de cadenas.
En el caso de la versión 1.0 de .NET Framework, esta clase utiliza comparaciones de cadenas que tienen en cuenta la referencia cultural. Sin embargo, en la versión 1.1 de .NET Framework y versiones posteriores, esta clase utiliza CultureInfo.InvariantCulture a la hora de comparar cadenas. Para obtener más información acerca de la forma en que la referencia cultural afecta a las comparaciones y a la ordenación, vea Comparar y ordenar datos para una referencia cultural específica y Realizar operaciones de cadenas que no distinguen entre referencias culturales.
En el ejemplo de código siguiente se muestran algunos métodos y propiedades 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 */
Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Esta implementación no proporciona un contenedor sincronizado (seguro para la ejecución de subprocesos) para una clase StringDictionary, pero las clases derivadas pueden crear sus propias versiones sincronizadas de StringDictionary mediante la propiedad SyncRoot.
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. Para garantizar la seguridad de los subprocesos durante la enumeración, es posible bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.