NameValueCollection Clase

Definición

Representa una colección de claves y String valores asociados String a los que se puede tener acceso con la clave o con el índice.

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
NameValueCollection
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 nullson .

(Heredado de NameObjectCollectionBase)
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 nullson .

InvalidateCachedArrays()

Restablece las matrices almacenadas en caché de la colección en null.

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.

Consulte también