NameValueCollection Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- Héritage
- Dérivé
- Attributs
Exemples
#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
'
'
Remarques
Cette collection est basée sur la NameObjectCollectionBase classe . Chaque élément de la collection est une paire clé/valeur. Toutefois, contrairement à , NameObjectCollectionBasecette classe peut stocker plusieurs valeurs de chaîne sous une seule clé.
Cette classe peut être utilisée pour les en-têtes, les chaînes de requête et les données de formulaire.
Les collections de ce type ne préservent pas l’ordre des éléments et aucun classement particulier n’est garanti lors de l’énumération de la collection.
La capacité d’un NameValueCollection correspond au nombre d’éléments que le NameValueCollection peut contenir. À mesure que des éléments sont ajoutés, sa capacité est automatiquement augmentée en fonction des besoins grâce à la réaffectation.
Le fournisseur de code de hachage distribue des codes de hachage pour les clés dans .NameValueCollection Le fournisseur de code de hachage par défaut est .CaseInsensitiveHashCodeProvider
Le comparateur détermine si deux clés sont égales. Le comparateur par défaut est un CaseInsensitiveComparer qui utilise les conventions de la culture invariante ; autrement dit, les comparaisons clés ne respectent pas la casse par défaut. Pour effectuer des comparaisons de clés respectant la casse, appelez le NameValueCollection.NameValueCollection(IEqualityComparer) constructeur et fournissez la valeur StringComparer.CurrentCulture, StringComparer.InvariantCultureou StringComparer.Ordinal comme equalityComparer
argument. Pour plus d’informations sur la façon dont la culture affecte les comparaisons et le tri, consultez Exécution d’opérations de chaîne Culture-Insensitive.
null
est autorisé en tant que clé ou en tant que valeur.
Attention
La Get méthode ne fait pas la distinction entre null
ce qui est retourné, car la clé spécifiée est introuvable et null
celle qui est retournée, car la valeur associée à la clé est null
.
Constructeurs
NameValueCollection() |
Initialise une nouvelle instance de la classe NameValueCollection qui est vide, possède la capacité initiale par défaut et utilise le fournisseur de code de hachage ne respectant pas la casse par défaut, ainsi que le comparateur ne respectant pas la casse par défaut. |
NameValueCollection(IEqualityComparer) |
Initialise une nouvelle instance de la classe NameValueCollection qui est vide, possède la capacité initiale par défaut et utilise l'objet IEqualityComparer spécifié. |
NameValueCollection(IHashCodeProvider, IComparer) |
Obsolète.
Obsolète.
Initialise une nouvelle instance de la classe NameValueCollection qui est vide, possède la capacité initiale par défaut et utilise le fournisseur de code de hachage spécifié, ainsi que le comparateur spécifié. |
NameValueCollection(Int32) |
Initialise une nouvelle instance de la classe NameValueCollection qui est vide, possède la capacité initiale spécifiée et utilise le fournisseur de code de hachage ne respectant pas la casse par défaut, ainsi que le comparateur ne respectant pas la casse par défaut. |
NameValueCollection(Int32, IEqualityComparer) |
Initialise une nouvelle instance de la classe NameValueCollection qui est vide, possède la capacité initiale spécifiée et utilise l'objet IEqualityComparer spécifié. |
NameValueCollection(Int32, IHashCodeProvider, IComparer) |
Obsolète.
Obsolète.
Initialise une nouvelle instance de la classe NameValueCollection qui est vide, possède la capacité initiale spécifiée et utilise le fournisseur de code de hachage spécifié, ainsi que le comparateur spécifié. |
NameValueCollection(Int32, NameValueCollection) |
Copie les entrées du NameValueCollection spécifié vers un nouveau NameValueCollection possédant la capacité initiale spécifiée ou la même capacité initiale que le nombre d'entrées copiées (selon la valeur la plus élevée) et utilisant le fournisseur de code de hachage ne respectant pas la casse par défaut, ainsi que le comparateur ne respectant pas la casse par défaut. |
NameValueCollection(NameValueCollection) |
Copie les entrées du NameValueCollection spécifié vers un nouveau NameValueCollection possédant la même capacité initiale que le nombre d’entrées copiées et utilisant le même fournisseur de code de hachage, ainsi que le même comparateur que celui de la collection source. |
NameValueCollection(SerializationInfo, StreamingContext) |
Obsolète.
Initialise une nouvelle instance de la classe NameValueCollection qui est sérialisable et utilise les éléments SerializationInfo et StreamingContext spécifiés. |
Propriétés
AllKeys |
Obtient toutes les clés contenues dans le NameValueCollection. |
Count |
Obtient le nombre de paires clé/valeur contenues dans l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
IsReadOnly |
Obtient ou définit une valeur indiquant si l'instance du NameObjectCollectionBase est en lecture seule. (Hérité de NameObjectCollectionBase) |
Item[Int32] |
Obtient l'entrée à l'index spécifié du NameValueCollection. |
Item[String] |
Obtient ou définit l'entrée dans le NameValueCollection avec la clé spécifiée. |
Keys |
Obtient une instance NameObjectCollectionBase.KeysCollection qui contient toutes les clés dans l'instance NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
Méthodes
Add(NameValueCollection) |
Copie les entrées dans le NameValueCollection spécifié pour le NameValueCollection actuel. |
Add(String, String) |
Ajoute une entrée possédant le nom et la valeur spécifiés au NameValueCollection. |
BaseAdd(String, Object) |
Ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseClear() |
Supprime toutes les entrées de l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseGet(Int32) |
Obtient la valeur de l'entrée à l'index spécifié de l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseGet(String) |
Obtient la valeur de la première entrée ayant la clé spécifiée dans l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseGetAllKeys() |
Retourne un tableau de type String qui contient toutes les clés dans l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseGetAllValues() |
Retourne un tableau d'éléments Object qui contient toutes les valeurs présentes dans l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseGetAllValues(Type) |
Retourne un tableau du type spécifié qui contient toutes les valeurs présentes dans l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseGetKey(Int32) |
Obtient la clé de l'entrée à l'index spécifié de l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseHasKeys() |
Obtient une valeur indiquant si l'instance du NameObjectCollectionBase contient des entrées dont les clés ne sont pas |
BaseRemove(String) |
Supprime les entrées contenant la clé spécifiée dans l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseRemoveAt(Int32) |
Supprime les entrées à l'index spécifié de l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseSet(Int32, Object) |
Définit la valeur de l'entrée à l'index spécifié de l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
BaseSet(String, Object) |
Définit la valeur de la première entrée contenant la clé spécifiée dans l'instance du NameObjectCollectionBase, si elle existe ; sinon, ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance du NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
Clear() |
Invalide les tableaux mis en cache et supprime toutes les entrées du NameValueCollection. |
CopyTo(Array, Int32) |
Copie l'ensemble de l'objet NameValueCollection vers un objet Array unidimensionnel compatible, en commençant à l'index spécifié du tableau cible. |
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
Get(Int32) |
Obtient les valeurs à l'index spécifié du NameValueCollection, combinées dans une liste avec la virgule comme séparateur. |
Get(String) |
Obtient les valeurs associées à la clé spécifiée du NameValueCollection, combinées dans une liste avec la virgule comme séparateur. |
GetEnumerator() |
Retourne un énumérateur qui itère au sein de NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetKey(Int32) |
Obtient la clé à l'index spécifié du NameValueCollection. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsolète.
Implémente l'interface ISerializable et retourne les données nécessaires pour sérialiser l'instance NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
GetValues(Int32) |
Obtient les valeurs à l'index spécifié du NameValueCollection. |
GetValues(String) |
Obtient les valeurs associées à la clé spécifiée à partir du NameValueCollection. |
HasKeys() |
Obtient une valeur qui indique si le NameValueCollection contient des clés qui ne sont pas |
InvalidateCachedArrays() |
Réaffecte la valeur |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
OnDeserialization(Object) |
Implémente l’interface ISerializable et déclenche l’événement de désérialisation une fois la désérialisation terminée. (Hérité de NameObjectCollectionBase) |
Remove(String) |
Supprime les entrées contenant la clé spécifiée dans l'instance du NameObjectCollectionBase. |
Set(String, String) |
Définit la valeur d'une entrée dans le NameValueCollection. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
ICollection.CopyTo(Array, Int32) |
Copie l'ensemble de l'objet NameObjectCollectionBase vers un objet Array unidimensionnel compatible, en commençant à l'index spécifié du tableau cible. (Hérité de NameObjectCollectionBase) |
ICollection.IsSynchronized |
Obtient une valeur indiquant si l’accès à l’objet NameObjectCollectionBase est synchronisé (thread-safe). (Hérité de NameObjectCollectionBase) |
ICollection.SyncRoot |
Obtient un objet qui peut être utilisé pour synchroniser l’accès à l’objet NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
Méthodes d’extension
Cast<TResult>(IEnumerable) |
Effectue un cast des éléments d'un IEnumerable vers le type spécifié. |
OfType<TResult>(IEnumerable) |
Filtre les éléments d'un IEnumerable en fonction du type spécifié. |
AsParallel(IEnumerable) |
Active la parallélisation d'une requête. |
AsQueryable(IEnumerable) |
Convertit un IEnumerable en IQueryable. |
S’applique à
Cohérence de thread
Les membres statiques publics (Shared
en Visual Basic) de ce type sont thread safe. Tous les membres de l'instance ne sont pas garantis comme étant thread-safe.
Cette implémentation ne fournit pas de wrapper synchronisé (thread safe) pour un NameValueCollection, mais les classes dérivées peuvent créer leurs propres versions synchronisées du à l’aide NameValueCollection de la SyncRoot propriété de la NameObjectCollectionBase classe .
L’énumération par le biais d’une collection n’est pas intrinsèquement une procédure thread safe. Même lorsqu'une collection est synchronisée, les autres threads peuvent toujours la modifier, ce qui entraîne la levée d'une exception par l'énumérateur. Pour garantir la sécurité des threads au cours de l’énumération, vous pouvez verrouiller la collection pendant l’ensemble de l’énumération ou bien intercepter les exceptions résultant des modifications apportées par les autres threads.