NameValueCollection Classe

Definição

Representa uma coleção de chaves e String valores associados String que podem ser acessados com a chave ou com o í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
Herança
NameValueCollection
Derivado
Atributos

Exemplos

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
'
'

Comentários

Essa coleção é baseada na NameObjectCollectionBase classe. Cada elemento da coleção é um par chave/valor. No entanto, ao contrário da NameObjectCollectionBaseclasse, essa classe pode armazenar vários valores de cadeia de caracteres em uma única chave.

Essa classe pode ser usada para cabeçalhos, cadeias de caracteres de consulta e dados de formulário.

Coleções desse tipo não preservam a ordenação de elementos e nenhuma ordenação específica é garantida ao enumerar a coleção.

A capacidade de um NameValueCollection é o número de elementos que podem NameValueCollection conter. À medida que os elementos são adicionados, sua capacidade é automaticamente aumentada conforme necessário por meio da realocação.

O provedor de código hash distribui códigos de hash para chaves no NameValueCollection. O provedor de código hash padrão é o CaseInsensitiveHashCodeProvider.

O comparador determina se duas chaves são iguais. O comparador padrão é um CaseInsensitiveComparer que usa as convenções da cultura invariável; ou seja, as principais comparações não diferenciam maiúsculas de minúsculas por padrão. Para executar comparações de chave que diferenciam maiúsculas de minúsculas, chame o NameValueCollection.NameValueCollection(IEqualityComparer) construtor e forneça um valor de StringComparer.CurrentCulture, StringComparer.InvariantCultureou StringComparer.Ordinal como o equalityComparer argumento. Para obter mais informações sobre como a cultura afeta comparações e classificação, consulte Executar operações de cadeia de caracteres Culture-Insensitive.

null é permitido como uma chave ou como um valor.

Caution

O Get método não distingue entre null o que é retornado porque a chave especificada não foi encontrada e null retornada porque o valor associado à chave é null.

Construtores

Nome Description
NameValueCollection()

Inicializa uma nova instância da NameValueCollection classe que está vazia, tem a capacidade inicial padrão e usa o provedor de código hash que não diferencia maiúsculas de minúsculas padrão e o comparador padrão que não diferencia maiúsculas de minúsculas.

NameValueCollection(IEqualityComparer)

Inicializa uma nova instância da NameValueCollection classe que está vazia, tem a capacidade inicial padrão e usa o objeto especificado IEqualityComparer .

NameValueCollection(IHashCodeProvider, IComparer)
Obsoleto.

Inicializa uma nova instância da NameValueCollection classe que está vazia, tem a capacidade inicial padrão e usa o provedor de código hash especificado e o comparador especificado.

NameValueCollection(Int32, IEqualityComparer)

Inicializa uma nova instância da NameValueCollection classe que está vazia, tem a capacidade inicial especificada e usa o objeto especificado IEqualityComparer .

NameValueCollection(Int32, IHashCodeProvider, IComparer)
Obsoleto.

Inicializa uma nova instância da NameValueCollection classe que está vazia, tem a capacidade inicial especificada e usa o provedor de código hash especificado e o comparador especificado.

NameValueCollection(Int32, NameValueCollection)

Copia as entradas do especificado NameValueCollection para um novo NameValueCollection com a capacidade inicial especificada ou a mesma capacidade inicial do número de entradas copiadas, o que for maior e usando o provedor de código hash que não diferencia maiúsculas de minúsculas padrão e o comparador padrão que não diferencia maiúsculas de minúsculas.

NameValueCollection(Int32)

Inicializa uma nova instância da NameValueCollection classe que está vazia, tem a capacidade inicial especificada e usa o provedor de código hash que não diferencia maiúsculas de minúsculas padrão e o comparador padrão que não diferencia maiúsculas de minúsculas.

NameValueCollection(NameValueCollection)

Copia as entradas do especificado NameValueCollection para um novo NameValueCollection com a mesma capacidade inicial que o número de entradas copiadas e usando o mesmo provedor de código hash e o mesmo comparador da coleção de origem.

NameValueCollection(SerializationInfo, StreamingContext)

Inicializa uma nova instância da NameValueCollection classe que é serializável e usa o especificado SerializationInfo e StreamingContext.

Propriedades

Nome Description
AllKeys

Obtém todas as chaves no NameValueCollection.

Count

Obtém o número de pares chave/valor contidos na NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
IsReadOnly

Obtém ou define um valor que indica se a NameObjectCollectionBase instância é somente leitura.

(Herdado de NameObjectCollectionBase)
Item[Int32]

Obtém a entrada no índice especificado do NameValueCollection.

Item[String]

Obtém ou define a entrada com a chave especificada no NameValueCollection.

Keys

Obtém uma NameObjectCollectionBase.KeysCollection instância que contém todas as chaves na NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)

Métodos

Nome Description
Add(NameValueCollection)

Copia as entradas no especificado NameValueCollection para o atual NameValueCollection.

Add(String, String)

Adiciona uma entrada com o nome e o valor especificados NameValueCollectionao .

BaseAdd(String, Object)

Adiciona uma entrada com a chave e o valor especificados à NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseClear()

Remove todas as entradas da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseGet(Int32)

Obtém o valor da entrada no índice especificado da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseGet(String)

Obtém o valor da primeira entrada com a chave especificada da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseGetAllKeys()

Retorna uma String matriz que contém todas as chaves na NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseGetAllValues()

Retorna uma Object matriz que contém todos os valores na NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseGetAllValues(Type)

Retorna uma matriz do tipo especificado que contém todos os valores na NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseGetKey(Int32)

Obtém a chave da entrada no índice especificado da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseHasKeys()

Obtém um valor que indica se a NameObjectCollectionBase instância contém entradas cujas chaves não nullsão .

(Herdado de NameObjectCollectionBase)
BaseRemove(String)

Remove as entradas com a chave especificada da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseRemoveAt(Int32)

Remove a entrada no índice especificado da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseSet(Int32, Object)

Define o valor da entrada no índice especificado da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseSet(String, Object)

Define o valor da primeira entrada com a chave especificada na NameObjectCollectionBase instância, se encontrada; caso contrário, adiciona uma entrada com a chave e o valor especificados na NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
Clear()

Invalida as matrizes armazenadas em cache e remove todas as entradas do NameValueCollection.

CopyTo(Array, Int32)

Copia o todo NameValueCollection para um unidimensional Arraycompatível, começando no índice especificado da matriz de destino.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Get(Int32)

Obtém os valores no índice especificado do NameValueCollection combinado em uma lista separada por vírgulas.

Get(String)

Obtém os valores associados à chave especificada do NameValueCollection combinado em uma lista separada por vírgulas.

GetEnumerator()

Retorna um enumerador que itera por meio do NameObjectCollectionBase.

(Herdado de NameObjectCollectionBase)
GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetKey(Int32)

Obtém a chave no índice especificado do NameValueCollection.

GetObjectData(SerializationInfo, StreamingContext)

Implementa a ISerializable interface e retorna os dados necessários para serializar a NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValues(Int32)

Obtém os valores no índice especificado do NameValueCollection.

GetValues(String)

Obtém os valores associados à chave especificada do NameValueCollection.

HasKeys()

Obtém um valor que indica se as NameValueCollection chaves contém que não nullsão .

InvalidateCachedArrays()

Redefine as matrizes armazenadas em cache da coleção para null.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
OnDeserialization(Object)

Implementa a ISerializable interface e gera o evento de desserialização quando a desserialização é concluída.

(Herdado de NameObjectCollectionBase)
Remove(String)

Remove as entradas com a chave especificada da NameObjectCollectionBase instância.

Set(String, String)

Define o valor de uma entrada no NameValueCollection.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
ICollection.CopyTo(Array, Int32)

Copia o todo NameObjectCollectionBase para um unidimensional Arraycompatível, começando no índice especificado da matriz de destino.

(Herdado de NameObjectCollectionBase)
ICollection.IsSynchronized

Obtém um valor que indica se o NameObjectCollectionBase acesso ao objeto é sincronizado (thread safe).

(Herdado de NameObjectCollectionBase)
ICollection.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso ao NameObjectCollectionBase objeto.

(Herdado de NameObjectCollectionBase)

Métodos de Extensão

Nome Description
AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

Aplica-se a

Acesso thread-safe

Membros estáticos públicos (Shared no Visual Basic) desse tipo são thread safe. Não há garantia de que quaisquer membros de instância sejam thread-safe.

Essa implementação não fornece um wrapper sincronizado (thread safe) para um NameValueCollection, mas classes derivadas podem criar suas próprias versões sincronizadas da NameValueCollection propriedade using da SyncRootNameObjectCollectionBase classe.

Enumerar por meio de uma coleção não é intrinsecamente um procedimento seguro de thread. Mesmo quando uma coleção é sincronizada, outros threads ainda podem modificar a coleção, o que faz com que o enumerador gere uma exceção. Para garantir a segurança do thread durante a enumeração, você pode bloquear a coleção durante toda a enumeração ou capturar as exceções resultantes de alterações feitas por outros threads.

Confira também