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.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
void PrintKeysAndValues( NameValueCollection^ myCol );
void PrintKeysAndValues2( NameValueCollection^ myCol );
int main()
{
// Creates and initializes a new NameValueCollection.
NameValueCollection^ myCol = gcnew 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.
array<String^>^myStrArr = gcnew array<String^>(myCol->Count);
myCol->CopyTo( myStrArr, 0 );
Console::WriteLine( "The string array contains:" );
for each ( 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 );
}
void PrintKeysAndValues( NameValueCollection^ myCol )
{
Console::WriteLine( " KEY VALUE" );
for each ( String^ s in myCol->AllKeys )
Console::WriteLine( " {0,-10} {1}", s, myCol[s] );
Console::WriteLine();
}
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
*/
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 un NameValueCollection es el número de elementos que NameValueCollection puede contener. A medida que se agregan elementos, su capacidad aumenta automáticamente según sea necesario mediante 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 operaciones de cadena Culture-Insensitive.
null
se permite como clave o como valor.
Precaución
El Get método no distingue entre null
el que se devuelve porque no se encuentra la clave especificada y null
que se devuelve porque el valor asociado a la clave es null
.
Constructores
NameValueCollection() |
Inicializa una nueva instancia de la clase NameValueCollection que está vacía, tiene la capacidad inicial predeterminada y usa el proveedor de código hash y el comparador predeterminados que no distinguen mayúsculas de minúsculas. |
NameValueCollection(IEqualityComparer) |
Inicializa una nueva instancia de la clase NameValueCollection que está vacía, tiene la capacidad inicial predeterminada y usa el objeto IEqualityComparer especificado. |
NameValueCollection(IHashCodeProvider, IComparer) |
Obsoletos.
Obsoletos.
Inicializa una nueva instancia de la clase NameValueCollection que está vacía, tiene la capacidad inicial predeterminada y usa el proveedor de código hash y el comparador especificados. |
NameValueCollection(Int32) |
Inicializa una nueva instancia de la clase NameValueCollection que está vacía, tiene la capacidad inicial especificada y usa el proveedor de códigos hash y el comparador predeterminados que no distinguen mayúsculas de minúsculas. |
NameValueCollection(Int32, IEqualityComparer) |
Inicializa una nueva instancia de la clase NameValueCollection que está vacía, tiene la capacidad inicial especificada y usa el objeto IEqualityComparer especificado. |
NameValueCollection(Int32, IHashCodeProvider, IComparer) |
Obsoletos.
Obsoletos.
Inicializa una nueva instancia de la clase NameValueCollection que está vacía, tiene la capacidad inicial especificada y usa el proveedor de códigos hash y el comparador especificados. |
NameValueCollection(Int32, NameValueCollection) |
Copia las entradas de la clase NameValueCollection especificada en una nueva clase NameValueCollection con la capacidad inicial especificada o con la misma capacidad inicial que el número de entradas copiadas, la que sea mayor, y con el proveedor de códigos hash y el comparador predeterminados que no distinguen mayúsculas de minúsculas. |
NameValueCollection(NameValueCollection) |
Copia las entradas de la clase NameValueCollection especificada en una nueva clase NameValueCollection que tiene la misma capacidad inicial que el número de entradas copiadas, usando el mismo proveedor de códigos hash y el mismo comparador que la colección de origen. |
NameValueCollection(SerializationInfo, StreamingContext) |
Obsoletos.
Inicializa una nueva instancia de la clase NameValueCollection que es serializable y usa las clases SerializationInfo y StreamingContext especificadas. |
Propiedades
AllKeys |
Obtiene todas las claves de NameValueCollection. |
Count |
Obtiene el número de pares de clave y valor incluidos en la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
IsReadOnly |
Obtiene o establece un valor que indica si la instancia NameObjectCollectionBase es de solo lectura. (Heredado de NameObjectCollectionBase) |
Item[Int32] |
Obtiene la entrada que se encuentra en el índice especificado de NameValueCollection. |
Item[String] |
Obtiene o establece la entrada con la clave especificada en NameValueCollection. |
Keys |
Obtiene una instancia NameObjectCollectionBase.KeysCollection que contiene todas las claves de la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
Métodos
Add(NameValueCollection) |
Copia las entradas del elemento NameValueCollection especificado en el elemento NameValueCollection actual. |
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 a la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseClear() |
Elimina todas las entradas de la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseGet(Int32) |
Obtiene el valor de la entrada que se encuentra en el índice especificado de la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseGet(String) |
Obtiene el valor de la primera entrada con la clave especificada desde la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseGetAllKeys() |
Devuelve una matriz String que contiene todas las claves de la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseGetAllValues() |
Devuelve una matriz Object que contiene todos los valores de la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseGetAllValues(Type) |
Devuelve una matriz del tipo especificado que contiene todos los valores de la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseGetKey(Int32) |
Obtiene la clave de la entrada que se encuentra en el índice especificado de la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseHasKeys() |
Obtiene un valor que indica si la instancia NameObjectCollectionBase contiene entradas cuyas claves no son |
BaseRemove(String) |
Quita las entradas con la clave especificada de la instancia de NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseRemoveAt(Int32) |
Elimina la entrada que se encuentra en el índice especificado de la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseSet(Int32, Object) |
Establece el valor de la entrada que se encuentra en el índice especificado de la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
BaseSet(String, Object) |
Establece el valor de la primera entrada con la clave especificada de la instancia NameObjectCollectionBase, si la encuentra; en caso contrario, agrega una entrada con la clave y el valor especificados a la instancia NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
Clear() |
Invalida las matrices almacenadas en caché y quita todas las entradas de NameValueCollection. |
CopyTo(Array, Int32) |
Copia la totalidad de NameValueCollection en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
Get(Int32) |
Obtiene los valores en el índice especificado de NameValueCollection combinados en una lista y separados por comas. |
Get(String) |
Obtiene los valores asociados a la clave especificada del elemento NameValueCollection combinados en una lista y separados por comas. |
GetEnumerator() |
Devuelve un enumerador que recorre en iteración la colección NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetKey(Int32) |
Obtiene la clave en el índice especificado del elemento NameValueCollection. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoletos.
Implementa la interfaz de ISerializable y devuelve los datos necesarios para serializar la instancia de NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
GetValues(Int32) |
Obtiene los valores que se encuentran 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 NameValueCollection contiene claves que no son |
InvalidateCachedArrays() |
Restablece las matrices almacenadas en caché de la colección a |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
OnDeserialization(Object) |
Implementa la interfaz ISerializable y genera el evento de deserialización cuando esta ha finalizado. (Heredado de NameObjectCollectionBase) |
Remove(String) |
Quita las entradas con la clave especificada de la instancia de NameObjectCollectionBase. |
Set(String, String) |
Establece el valor de una entrada de NameValueCollection. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
ICollection.CopyTo(Array, Int32) |
Copia la totalidad de NameObjectCollectionBase en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino. (Heredado de NameObjectCollectionBase) |
ICollection.IsSynchronized |
Obtiene un valor que indica si el acceso al objeto NameObjectCollectionBase está sincronizado (es seguro para subprocesos). (Heredado de NameObjectCollectionBase) |
ICollection.SyncRoot |
Obtiene un objeto que puede utilizarse para sincronizar el acceso al objeto NameObjectCollectionBase. (Heredado de NameObjectCollectionBase) |
Métodos de extensión
Cast<TResult>(IEnumerable) |
Convierte los elementos de IEnumerable en el tipo especificado. |
OfType<TResult>(IEnumerable) |
Filtra los elementos de IEnumerable en función de un tipo especificado. |
AsParallel(IEnumerable) |
Habilita la paralelización de una consulta. |
AsQueryable(IEnumerable) |
Convierte una interfaz IEnumerable en IQueryable. |
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 subprocesos.
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 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.