NameValueCollection Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
'
'
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 |
| 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 |
| InvalidateCachedArrays() |
Reinicia os arrays em cache da coleção para |
| 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.