NameValueCollection Classe

Définition

Représente une collection de clés et String de valeurs associées String accessibles avec la clé ou avec l’index.

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
NameValueCollection
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 null.

(Hérité de NameObjectCollectionBase)
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 null.

InvalidateCachedArrays()

Réinitialise les tableaux mis en cache de la collection à null.

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.

Voir aussi