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 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 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.
Cuidado
O Get método não distingue entre null
o qual é 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) |
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) |
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 classes derivadas podem criar suas próprias versões sincronizadas da NameValueCollection propriedade using SyncRoot da NameObjectCollectionBase classe.
A enumeração por meio de uma coleção não é intrinsecamente um procedimento seguro de thread. 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.