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;
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 au NameObjectCollectionBase, cette 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 conservent 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 est le nombre d’éléments qu’il 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 codes de hachage distribue les codes de hachage pour les clés dans le NameValueCollection. Le fournisseur de code de hachage par défaut est le 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 sensibles à la casse, appelez le NameValueCollection.NameValueCollection(IEqualityComparer) constructeur et fournissez une valeur de StringComparer.CurrentCulture, StringComparer.InvariantCultureou StringComparer.Ordinal en tant qu’argument equalityComparer . 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.
Avertissement
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 elle est retournée, car la valeur associée à la clé est null.
Constructeurs
| Nom | Description |
|---|---|
| NameValueCollection() |
Initialise une nouvelle instance de la NameValueCollection classe vide, a la capacité initiale par défaut et utilise le fournisseur de code de hachage respectant la casse par défaut et le comparateur respectant la casse par défaut. |
| NameValueCollection(IEqualityComparer) |
Initialise une nouvelle instance de la NameValueCollection classe vide, a la capacité initiale par défaut et utilise l’objet spécifié IEqualityComparer . |
| NameValueCollection(IHashCodeProvider, IComparer) |
Obsolète.
Initialise une nouvelle instance de la NameValueCollection classe vide, a la capacité initiale par défaut et utilise le fournisseur de code de hachage spécifié et le comparateur spécifié. |
| NameValueCollection(Int32, IEqualityComparer) |
Initialise une nouvelle instance de la NameValueCollection classe vide, a la capacité initiale spécifiée et utilise l’objet spécifié IEqualityComparer . |
| NameValueCollection(Int32, IHashCodeProvider, IComparer) |
Obsolète.
Initialise une nouvelle instance de la NameValueCollection classe vide, a la capacité initiale spécifiée et utilise le fournisseur de code de hachage spécifié et le comparateur spécifié. |
| NameValueCollection(Int32, NameValueCollection) |
Copie les entrées de l’élément spécifié NameValueCollection dans un nouveau NameValueCollection avec la capacité initiale spécifiée ou la même capacité initiale que le nombre d’entrées copiées, selon ce qui est supérieur, et en utilisant le fournisseur de code de hachage respectant la casse par défaut et le comparateur sans respect de la casse par défaut. |
| NameValueCollection(Int32) |
Initialise une nouvelle instance de la NameValueCollection classe vide, a la capacité initiale spécifiée et utilise le fournisseur de code de hachage respectant la casse par défaut et le comparateur respectant la casse par défaut. |
| NameValueCollection(NameValueCollection) |
Copie les entrées de l’élément spécifié NameValueCollection dans une nouvelle NameValueCollection capacité initiale que le nombre d’entrées copiées et utilisant le même fournisseur de code de hachage et le même comparateur que la collection source. |
| NameValueCollection(SerializationInfo, StreamingContext) |
Initialise une nouvelle instance de la NameValueCollection classe sérialisable et utilise les éléments spécifiés SerializationInfo et StreamingContext. |
Propriétés
| Nom | Description |
|---|---|
| AllKeys |
Obtient toutes les clés dans le NameValueCollection. |
| Count |
Obtient le nombre de paires clé/valeur contenues dans l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| IsReadOnly |
Obtient ou définit une valeur indiquant si l’instance 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 avec la clé spécifiée dans le NameValueCollection. |
| Keys |
Obtient une NameObjectCollectionBase.KeysCollection instance qui contient toutes les clés de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
Méthodes
| Nom | Description |
|---|---|
| Add(NameValueCollection) |
Copie les entrées dans le fichier spécifié NameValueCollection dans le fichier actif NameValueCollection. |
| Add(String, String) |
Ajoute une entrée avec le nom et la valeur spécifiés à l’objet NameValueCollection. |
| BaseAdd(String, Object) |
Ajoute une entrée avec la clé et la valeur spécifiées dans l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseClear() |
Supprime toutes les entrées de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseGet(Int32) |
Obtient la valeur de l’entrée à l’index spécifié de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseGet(String) |
Obtient la valeur de la première entrée avec la clé spécifiée de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseGetAllKeys() |
Retourne un String tableau qui contient toutes les clés de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseGetAllValues() |
Retourne un Object tableau qui contient toutes les valeurs de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseGetAllValues(Type) |
Retourne un tableau du type spécifié qui contient toutes les valeurs de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseGetKey(Int32) |
Obtient la clé de l’entrée à l’index spécifié de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseHasKeys() |
Obtient une valeur indiquant si l’instance NameObjectCollectionBase contient des entrées dont les clés ne sont pas |
| BaseRemove(String) |
Supprime les entrées avec la clé spécifiée de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseRemoveAt(Int32) |
Supprime l’entrée à l’index spécifié de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseSet(Int32, Object) |
Définit la valeur de l’entrée à l’index spécifié de l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| BaseSet(String, Object) |
Définit la valeur de la première entrée avec la clé spécifiée dans l’instance NameObjectCollectionBase , si elle est trouvée ; sinon, ajoute une entrée avec la clé et la valeur spécifiées dans l’instance 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’intégralité NameValueCollection dans une dimension unidimensionnelle Arraycompatible, 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é de la NameValueCollection liste combinée en une liste séparée par des virgules. |
| Get(String) |
Obtient les valeurs associées à la clé spécifiée à partir de la NameValueCollection liste combinée en une liste séparée par des virgules. |
| GetEnumerator() |
Retourne un énumérateur qui itère dans le NameObjectCollectionBase. (Hérité de NameObjectCollectionBase) |
| GetHashCode() |
Sert 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) |
Implémente l’interface ISerializable et retourne les données nécessaires pour sérialiser l’instance NameObjectCollectionBase . (Hérité de NameObjectCollectionBase) |
| GetType() |
Obtient la 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 de l’objet NameValueCollection. |
| HasKeys() |
Obtient une valeur indiquant si les NameValueCollection clés contiennent des clés qui ne sont pas |
| InvalidateCachedArrays() |
Réinitialise les tableaux mis en cache de la collection à |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnDeserialization(Object) |
Implémente l’interface ISerializable et déclenche l’événement de désérialisation lorsque la désérialisation est terminée. (Hérité de NameObjectCollectionBase) |
| Remove(String) |
Supprime les entrées avec la clé spécifiée de l’instance 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
| Nom | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Copie l’intégralité NameObjectCollectionBase dans une dimension unidimensionnelle Arraycompatible, 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
| Nom | Description |
|---|---|
| AsParallel(IEnumerable) |
Active la parallélisation d’une requête. |
| AsQueryable(IEnumerable) |
Convertit un IEnumerable en IQueryable. |
| Cast<TResult>(IEnumerable) |
Convertit les éléments d’un IEnumerable en type spécifié. |
| OfType<TResult>(IEnumerable) |
Filtre les éléments d’une IEnumerable en fonction d’un type spécifié. |
S’applique à
Cohérence de thread
Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'y a aucune garantie que les membres d’instance soient 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 de l’utilisation NameValueCollection de la SyncRoot propriété de la NameObjectCollectionBase classe.
L’énumération par le biais d’une collection n’est intrinsèquement pas une procédure sécurisée de thread. Même lorsqu’une collection est synchronisée, d’autres threads peuvent toujours modifier la collection, ce qui provoque la levée d’une exception par l’énumérateur. Pour garantir la sécurité des threads pendant l’énumération, vous pouvez verrouiller la collection pendant toute l’énumération ou intercepter les exceptions résultant des modifications apportées par d’autres threads.