NameValueCollection Classe

Definição

Representa uma coleção de chaves e String valores associados String que podem ser acedidos tanto com a chave como 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
'
'

Observações

Esta coleção baseia-se na NameObjectCollectionBase turma. Cada elemento da coleção é um par chave/valor. No entanto, ao contrário da NameObjectCollectionBase, esta classe pode armazenar múltiplos valores de string sob uma única chave.

Esta classe pode ser usada para cabeçalhos, strings de consulta e dados de formulários.

Coleções deste tipo não preservam a ordenação dos elementos, e não é garantida uma ordenação particular ao enumerar a coleção.

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

O fornecedor de código hash dispensa códigos hash para chaves no NameValueCollection. O fornecedor de código hash por defeito é o CaseInsensitiveHashCodeProvider.

O comparador determina se duas chaves são iguais. O comparador padrão é a CaseInsensitiveComparer que utiliza as convenções da cultura invariante; ou seja, as comparações de chave são insensíveis a maiúsculas minúsculas por defeito. Para realizar comparações de chaves sensíveis a maiúsculos e minúsculos, chame o NameValueCollection.NameValueCollection(IEqualityComparer) construtor e forneça um valor de StringComparer.CurrentCulture, StringComparer.InvariantCulture, ou StringComparer.Ordinal como equalityComparer argumento. Para mais informações sobre como a cultura afeta as comparações e a ordenação, veja Executar Culture-Insensitive Operações de Strings.

null é permitido como chave ou como valor.

Atenção

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

Construtores

Name Description
NameValueCollection()

Inicializa uma nova instância da NameValueCollection classe que está vazia, tem a capacidade inicial por defeito e utiliza o fornecedor de código hash insensível a maiúsculas minúsculas e 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 utiliza o fornecedor 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 utiliza o fornecedor 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, usando o fornecedor padrão de código hash insensível a maiúsculas minúsculas e minúsculas.

NameValueCollection(Int32)

Inicializa uma nova instância da NameValueCollection classe que está vazia, tem a capacidade inicial especificada e utiliza o fornecedor padrão de código hash insensível a maiúsculas minúsculas e minúsculas.

NameValueCollection(NameValueCollection)

Copia as entradas do especificado NameValueCollection para um novo NameValueCollection com a mesma capacidade inicial do número de entradas copiadas e usando o mesmo fornecedor 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 os especificados SerializationInfo e StreamingContext.

Propriedades

Name 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

Recebe ou define um valor que indica se a NameObjectCollectionBase instância é apenas 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 da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)

Métodos

Name Description
Add(NameValueCollection)

Copia as entradas no especificado NameValueCollection para o atual NameValueCollection.

Add(String, String)

Adiciona uma entrada com o nome e valor especificados ao NameValueCollection.

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()

Devolve um String array que contém todas as chaves da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseGetAllValues()

Devolve um Object array que contém todos os valores da NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
BaseGetAllValues(Type)

Devolve um array do tipo especificado que contém todos os valores da 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 valor especificados à NameObjectCollectionBase instância.

(Herdado de NameObjectCollectionBase)
Clear()

Invalida os arrays em cache e remove todas as entradas do NameValueCollectionarquivo .

CopyTo(Array, Int32)

Copia a totalidade NameValueCollection para uma unidimensional Arraycompatível , começando no índice especificado do array alvo.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Get(Int32)

Obtém os valores no índice especificado da NameValueCollection combinação numa lista separada por vírgulas.

Get(String)

Obtém os valores associados à chave especificada da NameValueCollection combinação numa lista separada por vírgulas.

GetEnumerator()

Devolve um enumerador que itera através do NameObjectCollectionBase.

(Herdado de NameObjectCollectionBase)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetKey(Int32)

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

GetObjectData(SerializationInfo, StreamingContext)

Implementa a ISerializable interface e devolve 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 a partir do NameValueCollection.

HasKeys()

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

InvalidateCachedArrays()

Reinicia os arrays em cache da coleção para null.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OnDeserialization(Object)

Implementa a ISerializable interface e levanta o evento de desserialização quando a desserialização está 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()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
ICollection.CopyTo(Array, Int32)

Copia a totalidade NameObjectCollectionBase para uma unidimensional Arraycompatível , começando no índice especificado do array alvo.

(Herdado de NameObjectCollectionBase)
ICollection.IsSynchronized

Recebe um valor que indica se o acesso ao NameObjectCollectionBase objeto está 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 da Extensão

Name Description
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

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

Aplica-se a

Segurança de Thread

Os membros estáticos públicos (Shared em Visual Basic) deste tipo são seguros para threads. Qualquer membro de instância não é garantido que seja seguro contra threads.

Esta implementação não fornece um wrapper sincronizado (thread safe) para um NameValueCollection, mas classes derivadas podem criar as suas próprias versões NameValueCollection sincronizadas do usando a SyncRoot propriedade da NameObjectCollectionBase classe.

Enumerar através de uma coleção não é intrinsecamente um procedimento seguro para threads. Mesmo quando uma coleção está sincronizada, outros threads ainda podem modificar a coleção, o que faz com que o enumerador lance uma exceção. Para garantir a segurança dos threads durante a enumeração, pode bloquear a coleção durante toda a enumeração ou apanhar as exceções resultantes de alterações feitas por outros threads.

Ver também