NameValueCollection Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- Derivado
- Atributos
Exemplos
#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
'
'
Comentários
Essa coleção é baseada na NameObjectCollectionBase classe . Cada elemento da coleção é um par chave/valor. No entanto, ao contrário do NameObjectCollectionBase, 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 o NameValueCollection pode 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 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 Executando operações de cadeia de caracteres de Culture-Insensitive.
null
é permitido como uma chave ou como um valor.
Cuidado
O Get método não distingue entre null
o que é retornado porque a chave especificada não foi encontrada e null
que é retornada porque o valor associado à chave é null
.
Construtores
NameValueCollection() |
Inicializa uma nova instância da classe NameValueCollection que está vazia, tem a capacidade inicial padrão e usa o provedor de código hash padrão que não diferencia maiúsculas e minúsculas e o comparador padrão que não diferencia maiúsculas de minúsculas. |
NameValueCollection(IEqualityComparer) |
Inicializa uma nova instância da classe NameValueCollection que está vazia, tem a capacidade inicial padrão e utiliza o objeto IEqualityComparer especificado. |
NameValueCollection(IHashCodeProvider, IComparer) |
Obsoleto.
Obsoleto.
Inicializa uma nova instância da classe NameValueCollection que está vazia, tem a capacidade inicial padrão e usa o provedor de código hash e o comparador especificados. |
NameValueCollection(Int32) |
Inicializa uma nova instância da classe NameValueCollection que está vazia, tem a capacidade inicial especificada e usa o provedor de código hash e o comparador padrão que não diferenciam maiúsculas de minúsculas. |
NameValueCollection(Int32, IEqualityComparer) |
Inicializa uma nova instância da classe NameValueCollection que está vazia, tem a capacidade inicial especificada e usa o objeto IEqualityComparer especificado. |
NameValueCollection(Int32, IHashCodeProvider, IComparer) |
Obsoleto.
Obsoleto.
Inicializa uma nova instância da classe NameValueCollection que está vazia, tem a capacidade inicial especificada e usa o provedor de código hash e o comparador especificados. |
NameValueCollection(Int32, NameValueCollection) |
Copia as entradas do NameValueCollection especificado para um novo NameValueCollection com a capacidade inicial especificada ou a mesma capacidade inicial que o número de entradas copiado, o que for maior, e usando o provedor padrão de código hash que não diferencia maiúsculas e minúsculas e o comparador padrão que não diferencia maiúsculas e minúsculas. |
NameValueCollection(NameValueCollection) |
Copia as entradas do NameValueCollection especificado 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 comparador que a coleção de origem. |
NameValueCollection(SerializationInfo, StreamingContext) |
Obsoleto.
Inicializa uma nova instância da classe NameValueCollection, que pode ser serializada e usa o SerializationInfo e o StreamingContext especificados. |
Propriedades
AllKeys |
Obtém todas as chaves no NameValueCollection. |
Count |
Obtém o número de pares chave-valor contidos na instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
IsReadOnly |
Obtém ou define um valor que indica se a instância de NameObjectCollectionBase é 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 instância de NameObjectCollectionBase.KeysCollection que contém todas as chaves da instância de NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
Métodos
Add(NameValueCollection) |
Copia as entradas no NameValueCollection especificado para o NameValueCollection atual. |
Add(String, String) |
Adiciona uma entrada com o nome e o valor especificados à NameValueCollection. |
BaseAdd(String, Object) |
Adiciona uma entrada com a chave e o valor especificados à instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseClear() |
Remove todas as entradas da instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseGet(Int32) |
Obtém o valor da entrada no índice especificado da instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseGet(String) |
Obtém o valor da primeira entrada com a chave especificada da instância de NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseGetAllKeys() |
Retorna uma matriz String que contém todas as chaves na instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseGetAllValues() |
Retorna uma matriz Object que contém todos os valores na instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseGetAllValues(Type) |
Retorna uma matriz do tipo especificado que contém todos os valores na instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseGetKey(Int32) |
Obtém a chave da entrada no índice especificado da instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseHasKeys() |
Obtém um valor que indica se a instância NameObjectCollectionBase contém entradas cujas chaves não são |
BaseRemove(String) |
Remove as entradas com a chave especificada da instância de NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseRemoveAt(Int32) |
Remove a entrada no índice especificado da instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseSet(Int32, Object) |
Define o valor da entrada no índice especificado da instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
BaseSet(String, Object) |
Define o valor da primeira entrada com a chave especificada na instância NameObjectCollectionBase, se encontrada; caso contrário, adiciona uma entrada com a chave especificada e o valor para a instância NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
Clear() |
Invalida as matrizes em cache e remove todas as entradas do NameValueCollection. |
CopyTo(Array, Int32) |
Copia todo o NameValueCollection em um Array unidimensional compatí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 combinados em uma lista separada por vírgulas. |
Get(String) |
Obtém os valores associados com a chave especificada do NameValueCollection combinados em uma lista separada por vírgulas. |
GetEnumerator() |
Retorna um enumerador que itera por meio de NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetKey(Int32) |
Obtém a chave no índice especificado do NameValueCollection. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoleto.
Implementa a interface ISerializable e retorna os dados necessários para serializar a instância NameObjectCollectionBase. (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 o NameValueCollection contém chaves que não são |
InvalidateCachedArrays() |
Redefine as matrizes em cache da coleção como |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
OnDeserialization(Object) |
Implementa a interface ISerializable e gera o evento de desserialização quando a desserialização for concluída. (Herdado de NameObjectCollectionBase) |
Remove(String) |
Remove as entradas com a chave especificada da instância de NameObjectCollectionBase. |
Set(String, String) |
Define o valor de uma entrada na NameValueCollection. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
ICollection.CopyTo(Array, Int32) |
Copia todo o NameObjectCollectionBase em um Array unidimensional compatível, começando no índice especificado da matriz de destino. (Herdado de NameObjectCollectionBase) |
ICollection.IsSynchronized |
Obtém um valor que indica se o acesso ao objeto NameObjectCollectionBase é sincronizado (thread-safe). (Herdado de NameObjectCollectionBase) |
ICollection.SyncRoot |
Obtém um objeto que pode ser usado para sincronizar o acesso ao objeto NameObjectCollectionBase. (Herdado de NameObjectCollectionBase) |
Métodos de Extensão
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. |
AsParallel(IEnumerable) |
Habilita a paralelização de uma consulta. |
AsQueryable(IEnumerable) |
Converte um IEnumerable em um IQueryable. |
Aplica-se a
Acesso thread-safe
Os membros estáticos públicos (Shared
no Visual Basic) desse são thread-safe. Não há garantia de que qualquer membro de instância seja seguro para threads.
Essa implementação não fornece um wrapper sincronizado (thread-safe) para um NameValueCollection, mas as classes derivadas podem criar suas próprias versões sincronizadas do NameValueCollection usando a SyncRoot propriedade da NameObjectCollectionBase classe .
Enumerar por meio de uma coleção não é intrinsecamente um procedimento thread-safe. Mesmo quando uma coleção está sincronizada, outros threads ainda podem modificar a coleção, o que faz o enumerador lançar uma exceção. Para garantir thread-safe durante a enumeração, é possível bloquear a coleção durante toda a enumeração ou verificar as exceções resultantes das alterações feitas por outros threads.