NameValueCollection Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
- Ereditarietà
- Derivato
- Attributi
Esempio
#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
'
'
Commenti
Questa raccolta è basata sulla NameObjectCollectionBase classe . Ogni elemento della raccolta è una coppia chiave/valore. Tuttavia, a differenza di NameObjectCollectionBase, questa classe può archiviare più valori stringa in una singola chiave.
Questa classe può essere usata per intestazioni, stringhe di query e dati del modulo.
Le raccolte di questo tipo non mantengono l'ordinamento degli elementi e non è garantito alcun ordinamento specifico durante l'enumerazione della raccolta.
La capacità di un NameValueCollection oggetto è il numero di elementi che può NameValueCollection contenere. Man mano che vengono aggiunti elementi, la sua capacità viene aumentata automaticamente in base alle esigenze tramite la riallocazione.
Il provider di codice hash distribuisce i codici hash per le chiavi in NameValueCollection. Il provider di codice hash predefinito è .CaseInsensitiveHashCodeProvider
L'operatore di confronto determina se due chiavi sono uguali. L'operatore di confronto predefinito è un CaseInsensitiveComparer oggetto che usa le convenzioni delle impostazioni cultura invarianti, ovvero i confronti delle chiavi non fanno distinzione tra maiuscole e minuscole per impostazione predefinita. Per eseguire confronti di chiavi con distinzione tra maiuscole e minuscole, chiamare il NameValueCollection.NameValueCollection(IEqualityComparer) costruttore e specificare un valore , StringComparer.CurrentCultureStringComparer.InvariantCultureo StringComparer.Ordinal come equalityComparer
argomento . Per altre informazioni su come le impostazioni cultura influiscono sui confronti e sull'ordinamento, vedere Esecuzione di operazioni stringa Culture-Insensitive.
null
è consentito come chiave o come valore.
Attenzione
Il Get metodo non distingue tra null
il quale viene restituito perché la chiave specificata non viene trovata e null
che viene restituita perché il valore associato alla chiave è null
.
Costruttori
NameValueCollection() |
Inizializza una nuova istanza vuota della classe NameValueCollection, con la capacità iniziale predefinita e che usa il provider di codice hash e l'operatore di confronto senza distinzione tra maiuscole e minuscole predefiniti. |
NameValueCollection(IEqualityComparer) |
Inizializza una nuova istanza vuota della classe NameValueCollection, con la capacità iniziale predefinita e che usa l'oggetto IEqualityComparer specificato. |
NameValueCollection(IHashCodeProvider, IComparer) |
Obsoleti.
Obsoleti.
Inizializza una nuova istanza vuota della classe NameValueCollection con la capacità iniziale predefinita, che usa il provider di codice hash e l'operatore di confronto specificati. |
NameValueCollection(Int32) |
Inizializza una nuova istanza vuota della classe NameValueCollection con la capacità iniziale specificata, che usa il provider di codice hash e l'operatore di confronto senza distinzione tra maiuscole e minuscole predefiniti. |
NameValueCollection(Int32, IEqualityComparer) |
Inizializza una nuova istanza vuota della classe NameValueCollection, con la capacità iniziale specificata e che usa l'oggetto IEqualityComparer specificato. |
NameValueCollection(Int32, IHashCodeProvider, IComparer) |
Obsoleti.
Obsoleti.
Inizializza una nuova istanza vuota della classe NameValueCollection con la capacità iniziale specificata e che usa il provider di codice hash e l'operatore di confronto specificati. |
NameValueCollection(Int32, NameValueCollection) |
Copia le voci dall'oggetto NameValueCollection specificato in un nuovo oggetto NameValueCollection con la capacità iniziale specificata o uguale a quella del numero di voci copiate, in base a quale delle due ha il valore maggiore, e usando il provider di codice hash e l'operatore di confronto senza distinzione tra maiuscole e minuscole predefiniti. |
NameValueCollection(NameValueCollection) |
Copia le voci dall'oggetto NameValueCollection specificato a un nuovo oggetto NameValueCollection con la stessa capacità iniziale del numero di voci copiate e usando lo stesso provider di codice hash e lo stesso operatore di confronto della raccolta di origine. |
NameValueCollection(SerializationInfo, StreamingContext) |
Obsoleti.
Inizializza una nuova istanza della classe NameValueCollection che è serializzabile e usa gli oggetti SerializationInfo e StreamingContext specificati. |
Proprietà
AllKeys |
Ottiene tutte le chiavi contenute in NameValueCollection. |
Count |
Ottiene il numero di coppie chiave/valore contenute nell'istanza della classe NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
IsReadOnly |
Ottiene o imposta un valore che indica se l'istanza di NameObjectCollectionBase è di sola lettura. (Ereditato da NameObjectCollectionBase) |
Item[Int32] |
Ottiene la voce in corrispondenza dell'indice specificato della classe NameValueCollection. |
Item[String] |
Ottiene o imposta la voce con la chiave specificata in NameValueCollection. |
Keys |
Ottiene un'istanza NameObjectCollectionBase.KeysCollection che contiene tutte le chiavi nell'istanza NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
Metodi
Add(NameValueCollection) |
Copia le voci dell'oggetto NameValueCollection specificato nell'oggetto NameValueCollection corrente. |
Add(String, String) |
Aggiunge a NameValueCollection una voce con il nome e il valore specificati. |
BaseAdd(String, Object) |
Aggiunge una voce con la chiave e il valore specificati nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseClear() |
Rimuove tutte le voci dall'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGet(Int32) |
Ottiene il valore della voce in corrispondenza dell'indice specificato dell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGet(String) |
Ottiene il valore della prima voce con la chiave specificata dall'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGetAllKeys() |
Restituisce una matrice String che contiene tutte le chiavi incluse nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGetAllValues() |
Restituisce una matrice Object che contiene tutti i valori inclusi nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGetAllValues(Type) |
Restituisce una matrice del tipo specificato che contiene tutti i valori inclusi nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseGetKey(Int32) |
Ottiene la chiave della voce in corrispondenza dell'indice specificato dell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseHasKeys() |
Ottiene un valore che indica se l'istanza di NameObjectCollectionBase contiene voci le cui chiavi non sono |
BaseRemove(String) |
Rimuove le voci con la chiave specificata dall'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseRemoveAt(Int32) |
Rimuove la voce in corrispondenza dell'indice specificato dell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseSet(Int32, Object) |
Imposta il valore della voce in corrispondenza dell'indice specificato dell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
BaseSet(String, Object) |
Imposta il valore della prima voce con la chiave specificata contenuta nell'istanza di NameObjectCollectionBase, se presente; in caso contrario aggiunge una voce con la chiave e il valore specificati nell'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
Clear() |
Invalida le matrici presenti nella cache e rimuove tutte le voci da NameValueCollection. |
CopyTo(Array, Int32) |
Copia l'intero oggetto NameValueCollection in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
Get(Int32) |
Ottiene i valori in corrispondenza dell'indice specificato dell'oggetto NameValueCollection combinato in un elenco separato da virgole. |
Get(String) |
Ottiene i valori associati alla chiave specificata dall'oggetto NameValueCollection combinati in un elenco separato da virgole. |
GetEnumerator() |
Restituisce un enumeratore che esegue l'iterazione di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetKey(Int32) |
Ottiene la chiave in corrispondenza dell'indice specificato di NameValueCollection. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsoleti.
Implementa l'interfaccia ISerializable e restituisce i dati necessari a serializzare l'istanza di NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
GetValues(Int32) |
Ottiene i valori in corrispondenza dell'indice specificato dell'oggetto NameValueCollection. |
GetValues(String) |
Ottiene i valori associati alla chiave specificata dall'oggetto NameValueCollection. |
HasKeys() |
Ottiene un valore che indica se l'oggetto NameValueCollection contiene chiavi che non sono |
InvalidateCachedArrays() |
Ripristina su |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnDeserialization(Object) |
Implementa l'interfaccia ISerializable e genera l'evento di deserializzazione quando la deserializzazione è completa. (Ereditato da NameObjectCollectionBase) |
Remove(String) |
Rimuove le voci con la chiave specificata dall'istanza di NameObjectCollectionBase. |
Set(String, String) |
Imposta il valore di una voce contenuta nell'oggetto NameValueCollection. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
ICollection.CopyTo(Array, Int32) |
Copia l'intero oggetto NameObjectCollectionBase in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione. (Ereditato da NameObjectCollectionBase) |
ICollection.IsSynchronized |
Ottiene un valore che indica se l'accesso all'oggetto NameObjectCollectionBase è sincronizzato (thread-safe). (Ereditato da NameObjectCollectionBase) |
ICollection.SyncRoot |
Ottiene un oggetto che può essere usato per sincronizzare l'accesso all'oggetto NameObjectCollectionBase. (Ereditato da NameObjectCollectionBase) |
Metodi di estensione
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |
Si applica a
Thread safety
I membri statici pubblici (Shared
in Visual Basic) di questo tipo sono thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.
Questa implementazione non fornisce un wrapper sincronizzato (thread-safe) per un NameValueCollectionoggetto , ma le classi derivate possono creare le proprie versioni sincronizzate di NameValueCollection usando la SyncRoot proprietà della NameObjectCollectionBase classe .
L'enumerazione tramite una raccolta non è intrinsecamente una procedura thread-safe. Anche se una raccolta è sincronizzata, è possibile che venga modificata da altri thread, con conseguente generazione di un'eccezione da parte dell'enumeratore. Per garantire la protezione dei thread durante l'enumerazione, è possibile bloccare la raccolta per l'intera enumerazione oppure intercettare le eccezioni determinate dalle modifiche apportate da altri thread.