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;
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 |
| 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 |
| InvalidateCachedArrays() |
Redefine as matrizes armazenadas em cache da coleção para |
| 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.