NameValueCollection Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
public ref class NameValueCollection : System::Collections::Specialized::NameObjectCollectionBase
public class NameValueCollection : System.Collections.Specialized.NameObjectCollectionBase
[System.Serializable]
public class NameValueCollection : System.Collections.Specialized.NameObjectCollectionBase
type NameValueCollection = class
inherit NameObjectCollectionBase
[<System.Serializable>]
type NameValueCollection = class
inherit NameObjectCollectionBase
Public Class NameValueCollection
Inherits NameObjectCollectionBase
- Herencia
- Derivado
- Atributos
Ejemplos
using System;
using System.Collections;
using System.Collections.Specialized;
public class SamplesNameValueCollection {
public static void Main() {
// Creates and initializes a new NameValueCollection.
NameValueCollection myCol = new NameValueCollection();
myCol.Add( "red", "rojo" );
myCol.Add( "green", "verde" );
myCol.Add( "blue", "azul" );
myCol.Add( "red", "rouge" );
// Displays the values in the NameValueCollection in two different ways.
Console.WriteLine( "Displays the elements using the AllKeys property and the Item (indexer) property:" );
PrintKeysAndValues( myCol );
Console.WriteLine( "Displays the elements using GetKey and Get:" );
PrintKeysAndValues2( myCol );
// Gets a value either by index or by key.
Console.WriteLine( "Index 1 contains the value {0}.", myCol[1] );
Console.WriteLine( "Key \"red\" has the value {0}.", myCol["red"] );
Console.WriteLine();
// Copies the values to a string array and displays the string array.
String[] myStrArr = new String[myCol.Count];
myCol.CopyTo( myStrArr, 0 );
Console.WriteLine( "The string array contains:" );
foreach ( String s in myStrArr )
Console.WriteLine( " {0}", s );
Console.WriteLine();
// Searches for a key and deletes it.
myCol.Remove( "green" );
Console.WriteLine( "The collection contains the following elements after removing \"green\":" );
PrintKeysAndValues( myCol );
// Clears the entire collection.
myCol.Clear();
Console.WriteLine( "The collection contains the following elements after it is cleared:" );
PrintKeysAndValues( myCol );
}
public static void PrintKeysAndValues( NameValueCollection myCol ) {
Console.WriteLine( " KEY VALUE" );
foreach ( String s in myCol.AllKeys )
Console.WriteLine( " {0,-10} {1}", s, myCol[s] );
Console.WriteLine();
}
public static void PrintKeysAndValues2( NameValueCollection myCol ) {
Console.WriteLine( " [INDEX] KEY VALUE" );
for ( int i = 0; i < myCol.Count; i++ )
Console.WriteLine( " [{0}] {1,-10} {2}", i, myCol.GetKey(i), myCol.Get(i) );
Console.WriteLine();
}
}
/*
This code produces the following output.
Displays the elements using the AllKeys property and the Item (indexer) property:
KEY VALUE
red rojo,rouge
green verde
blue azul
Displays the elements using GetKey and Get:
[INDEX] KEY VALUE
[0] red rojo,rouge
[1] green verde
[2] blue azul
Index 1 contains the value verde.
Key "red" has the value rojo,rouge.
The string array contains:
rojo,rouge
verde
azul
The collection contains the following elements after removing "green":
KEY VALUE
red rojo,rouge
blue azul
The collection contains the following elements after it is cleared:
KEY VALUE
*/
' The following code example demonstrates several of the properties and methods of ListDictionary.
Imports System.Collections
Imports System.Collections.Specialized
Public Class SamplesNameValueCollection
Public Shared Sub Main()
' Creates and initializes a new NameValueCollection.
Dim myCol As New NameValueCollection()
myCol.Add("red", "rojo")
myCol.Add("green", "verde")
myCol.Add("blue", "azul")
myCol.Add("red", "rouge")
' Displays the values in the NameValueCollection in two different ways.
Console.WriteLine("Displays the elements using the AllKeys property and the Item (indexer) property:")
PrintKeysAndValues(myCol)
Console.WriteLine("Displays the elements using GetKey and Get:")
PrintKeysAndValues2(myCol)
' Gets a value either by index or by key.
Console.WriteLine("Index 1 contains the value {0}.", myCol(1))
Console.WriteLine("Key ""red"" has the value {0}.", myCol("red"))
Console.WriteLine()
' Copies the values to a string array and displays the string array.
Dim myStrArr(myCol.Count) As String
myCol.CopyTo(myStrArr, 0)
Console.WriteLine("The string array contains:")
Dim s As String
For Each s In myStrArr
Console.WriteLine(" {0}", s)
Next s
Console.WriteLine()
' Searches for a key and deletes it.
myCol.Remove("green")
Console.WriteLine("The collection contains the following elements after removing ""green"":")
PrintKeysAndValues(myCol)
' Clears the entire collection.
myCol.Clear()
Console.WriteLine("The collection contains the following elements after it is cleared:")
PrintKeysAndValues(myCol)
End Sub
Public Shared Sub PrintKeysAndValues(myCol As NameValueCollection)
Console.WriteLine(" KEY VALUE")
Dim s As String
For Each s In myCol.AllKeys
Console.WriteLine(" {0,-10} {1}", s, myCol(s))
Next s
Console.WriteLine()
End Sub
Public Shared Sub PrintKeysAndValues2(myCol As NameValueCollection)
Console.WriteLine(" [INDEX] KEY VALUE")
Dim i As Integer
For i = 0 To myCol.Count - 1
Console.WriteLine(" [{0}] {1,-10} {2}", i, myCol.GetKey(i), myCol.Get(i))
Next i
Console.WriteLine()
End Sub
End Class
'This code produces the following output.
'
'Displays the elements using the AllKeys property and the Item (indexer) property:
' KEY VALUE
' red rojo,rouge
' green verde
' blue azul
'
'Displays the elements using GetKey and Get:
' [INDEX] KEY VALUE
' [0] red rojo,rouge
' [1] green verde
' [2] blue azul
'
'Index 1 contains the value verde.
'Key "red" has the value rojo,rouge.
'
'The string array contains:
' red
' green
' blue
'
'
'The collection contains the following elements after removing "green":
' KEY VALUE
' red rojo,rouge
' blue azul
'
'The collection contains the following elements after it is cleared:
' KEY VALUE
'
'
Comentarios
Esta colección se basa en la NameObjectCollectionBase clase . Cada elemento de la colección es un par clave-valor. Sin embargo, a diferencia de NameObjectCollectionBase, esta clase puede almacenar varios valores de cadena en una sola clave.
Esta clase se puede usar para encabezados, cadenas de consulta y datos de formulario.
Las colecciones de este tipo no conservan el orden de los elementos y no se garantiza ningún orden determinado al enumerar la colección.
La capacidad de es NameValueCollection el número de elementos que NameValueCollection puede contener. A medida que se agregan elementos, su capacidad aumenta automáticamente según sea necesario a través de la reasignación.
El proveedor de código hash dispensa códigos hash para las claves de NameValueCollection. El proveedor de código hash predeterminado es .CaseInsensitiveHashCodeProvider
El comparador determina si dos claves son iguales. El comparador predeterminado es un CaseInsensitiveComparer que usa las convenciones de la referencia cultural invariable; es decir, las comparaciones clave no distinguen mayúsculas de minúsculas de forma predeterminada. Para realizar comparaciones de claves que distinguen mayúsculas de minúsculas, llame al NameValueCollection.NameValueCollection(IEqualityComparer) constructor y proporcione un valor de StringComparer.CurrentCulture, StringComparer.InvariantCultureo StringComparer.Ordinal como argumento equalityComparer . Para obtener más información sobre cómo afecta la referencia cultural a las comparaciones y la ordenación, vea Realizar Culture-Insensitive operaciones de cadena.
null se permite como clave o como valor.
Caution
El Get método no distingue entre null eso se devuelve porque no se encuentra la clave especificada y null se devuelve porque el valor asociado a la clave es null.
Constructores
| Nombre | Description |
|---|---|
| NameValueCollection() |
Inicializa una nueva instancia de la NameValueCollection clase que está vacía, tiene la capacidad inicial predeterminada y usa el proveedor de código hash que no distingue mayúsculas de minúsculas predeterminado y el comparador predeterminado que no distingue mayúsculas de minúsculas. |
| NameValueCollection(IEqualityComparer) |
Inicializa una nueva instancia de la NameValueCollection clase que está vacía, tiene la capacidad inicial predeterminada y usa el objeto especificado IEqualityComparer . |
| NameValueCollection(IHashCodeProvider, IComparer) |
Obsoletos.
Inicializa una nueva instancia de la NameValueCollection clase que está vacía, tiene la capacidad inicial predeterminada y usa el proveedor de código hash especificado y el comparador especificado. |
| NameValueCollection(Int32, IEqualityComparer) |
Inicializa una nueva instancia de la NameValueCollection clase que está vacía, tiene la capacidad inicial especificada y usa el objeto especificado IEqualityComparer . |
| NameValueCollection(Int32, IHashCodeProvider, IComparer) |
Obsoletos.
Inicializa una nueva instancia de la NameValueCollection clase que está vacía, tiene la capacidad inicial especificada y usa el proveedor de código hash especificado y el comparador especificado. |
| NameValueCollection(Int32, NameValueCollection) |
Copia las entradas del especificado NameValueCollection en un nuevo NameValueCollection con la capacidad inicial especificada o la misma capacidad inicial que el número de entradas copiadas, lo que sea mayor y usando el proveedor de código hash sin distinción entre mayúsculas y minúsculas predeterminado y el comparador predeterminado que no distingue mayúsculas de minúsculas. |
| NameValueCollection(Int32) |
Inicializa una nueva instancia de la NameValueCollection clase que está vacía, tiene la capacidad inicial especificada y usa el proveedor de código hash que no distingue mayúsculas de minúsculas predeterminado y el comparador predeterminado que no distingue mayúsculas de minúsculas. |
| NameValueCollection(NameValueCollection) |
Copia las entradas del especificado NameValueCollection en un nuevo NameValueCollection con la misma capacidad inicial que el número de entradas copiadas y usando el mismo proveedor de código hash y el mismo comparador que la colección de origen. |
| NameValueCollection(SerializationInfo, StreamingContext) |
Inicializa una nueva instancia de la NameValueCollection clase que es serializable y usa los valores especificados SerializationInfo y StreamingContext. |
Propiedades
| Nombre | Description |
|---|---|
| AllKeys |
Obtiene todas las claves de NameValueCollection. |
| Count |
Obtiene el número de pares clave-valor contenidos en la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| IsReadOnly |
Obtiene o establece un valor que indica si la NameObjectCollectionBase instancia es de solo lectura. (Heredado de NameObjectCollectionBase) |
| Item[Int32] |
Obtiene la entrada en el índice especificado de .NameValueCollection |
| Item[String] |
Obtiene o establece la entrada con la clave especificada en .NameValueCollection |
| Keys |
Obtiene una NameObjectCollectionBase.KeysCollection instancia que contiene todas las claves de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
Métodos
| Nombre | Description |
|---|---|
| Add(NameValueCollection) |
Copia las entradas del especificado NameValueCollection en el objeto actual NameValueCollection. |
| Add(String, String) |
Agrega una entrada con el nombre y el valor especificados a .NameValueCollection |
| BaseAdd(String, Object) |
Agrega una entrada con la clave y el valor especificados en la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseClear() |
Quita todas las entradas de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseGet(Int32) |
Obtiene el valor de la entrada en el índice especificado de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseGet(String) |
Obtiene el valor de la primera entrada con la clave especificada de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseGetAllKeys() |
Devuelve una String matriz que contiene todas las claves de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseGetAllValues() |
Devuelve una Object matriz que contiene todos los valores de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseGetAllValues(Type) |
Devuelve una matriz del tipo especificado que contiene todos los valores de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseGetKey(Int32) |
Obtiene la clave de la entrada en el índice especificado de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseHasKeys() |
Obtiene un valor que indica si la NameObjectCollectionBase instancia contiene entradas cuyas claves no |
| BaseRemove(String) |
Quita las entradas con la clave especificada de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseRemoveAt(Int32) |
Quita la entrada en el índice especificado de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseSet(Int32, Object) |
Establece el valor de la entrada en el índice especificado de la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| BaseSet(String, Object) |
Establece el valor de la primera entrada con la clave especificada en la NameObjectCollectionBase instancia, si se encuentra; de lo contrario, agrega una entrada con la clave y el valor especificados en la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| Clear() |
Invalida las matrices almacenadas en caché y quita todas las entradas de .NameValueCollection |
| CopyTo(Array, Int32) |
Copia todo en NameValueCollection una unidimensional Arraycompatible, empezando por el índice especificado de la matriz de destino. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| Get(Int32) |
Obtiene los valores del índice especificado de la NameValueCollection combinación en una lista separada por comas. |
| Get(String) |
Obtiene los valores asociados a la clave especificada de la NameValueCollection combinación en una lista separada por comas. |
| GetEnumerator() |
Devuelve un enumerador que recorre en iteración .NameObjectCollectionBase (Heredado de NameObjectCollectionBase) |
| GetHashCode() |
Actúa como la función hash predeterminada. (Heredado de Object) |
| GetKey(Int32) |
Obtiene la clave en el índice especificado de .NameValueCollection |
| GetObjectData(SerializationInfo, StreamingContext) |
Implementa la ISerializable interfaz y devuelve los datos necesarios para serializar la NameObjectCollectionBase instancia. (Heredado de NameObjectCollectionBase) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| GetValues(Int32) |
Obtiene los valores en el índice especificado de .NameValueCollection |
| GetValues(String) |
Obtiene los valores asociados a la clave especificada de .NameValueCollection |
| HasKeys() |
Obtiene un valor que indica si contiene NameValueCollection claves que no |
| InvalidateCachedArrays() |
Restablece las matrices almacenadas en caché de la colección en |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| OnDeserialization(Object) |
Implementa la ISerializable interfaz y genera el evento de deserialización cuando se completa la deserialización. (Heredado de NameObjectCollectionBase) |
| Remove(String) |
Quita las entradas con la clave especificada de la NameObjectCollectionBase instancia. |
| Set(String, String) |
Establece el valor de una entrada en .NameValueCollection |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Copia todo en NameObjectCollectionBase una unidimensional Arraycompatible, empezando por el índice especificado de la matriz de destino. (Heredado de NameObjectCollectionBase) |
| ICollection.IsSynchronized |
Obtiene un valor que indica si el NameObjectCollectionBase acceso al objeto está sincronizado (seguro para subprocesos). (Heredado de NameObjectCollectionBase) |
| ICollection.SyncRoot |
Obtiene un objeto que se puede usar para sincronizar el acceso al NameObjectCollectionBase objeto . (Heredado de NameObjectCollectionBase) |
Métodos de extensión
| Nombre | Description |
|---|---|
| AsParallel(IEnumerable) |
Habilita la paralelización de una consulta. |
| AsQueryable(IEnumerable) |
Convierte un IEnumerable en un IQueryable. |
| Cast<TResult>(IEnumerable) |
Convierte los elementos de un IEnumerable al tipo especificado. |
| OfType<TResult>(IEnumerable) |
Filtra los elementos de un IEnumerable en función de un tipo especificado. |
Se aplica a
Seguridad para subprocesos
Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancia sean seguros para el acceso concurrente.
Esta implementación no proporciona un contenedor sincronizado (seguro para subprocesos) para una NameValueCollectionclase , pero las clases derivadas pueden crear sus propias versiones sincronizadas de NameValueCollection mediante la SyncRoot propiedad de la NameObjectCollectionBase clase .
La enumeración a través de una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando se sincroniza una colección, otros subprocesos todavía pueden modificar la colección, lo que hace que el enumerador inicie una excepción. Para garantizar la seguridad de los subprocesos durante la enumeración, puede bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.