NameValueCollection Klas

Definitie

Vertegenwoordigt een verzameling gekoppelde String sleutels en String waarden die kunnen worden geopend met de sleutel of met de 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
Overname
NameValueCollection
Afgeleid
Kenmerken

Voorbeelden

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
'
'

Opmerkingen

Deze verzameling is gebaseerd op de NameObjectCollectionBase klasse. Elk element van de verzameling is een sleutel/waardepaar. In tegenstelling tot de NameObjectCollectionBaseklasse kan deze klasse echter meerdere tekenreekswaarden onder één sleutel opslaan.

Deze klasse kan worden gebruikt voor headers, queryreeksen en formuliergegevens.

Verzamelingen van dit type behouden de volgorde van elementen niet en er wordt geen bepaalde volgorde gegarandeerd bij het inventariseren van de verzameling.

De capaciteit van een NameValueCollection is het aantal elementen dat de NameValueCollection kan bevatten. Wanneer er elementen worden toegevoegd, wordt de capaciteit automatisch verhoogd zoals vereist via herlocatie.

De hashcodeprovider dispenseert hash-codes voor sleutels in de NameValueCollection. De standaard-hashcodeprovider is de CaseInsensitiveHashCodeProvider.

De vergelijkingsfunctie bepaalt of twee sleutels gelijk zijn. De standaardvergelijker is een CaseInsensitiveComparer vergelijking die gebruikmaakt van de conventies van de invariante cultuur. Dat wil gezegd, sleutelvergelijkingen zijn standaard niet hoofdlettergevoelig. Als u hoofdlettergevoelige sleutelvergelijkingen wilt uitvoeren, roept u de NameValueCollection.NameValueCollection(IEqualityComparer) constructor aan en geeft u een waarde op van StringComparer.CurrentCulture, StringComparer.InvariantCultureof StringComparer.Ordinal als het equalityComparer argument. Zie Culture-Insensitive Tekenreeksbewerkingen uitvoeren voor meer informatie over hoe cultuur van invloed is op vergelijkingen en sorteren.

null is toegestaan als een sleutel of als een waarde.

Caution

De Get methode maakt geen onderscheid tussen null die geretourneerd omdat de opgegeven sleutel niet wordt gevonden en null die wordt geretourneerd omdat de waarde die is gekoppeld aan de sleutel is null.

Constructors

Name Description
NameValueCollection()

Initialiseert een nieuw exemplaar van de NameValueCollection klasse die leeg is, heeft de oorspronkelijke standaardcapaciteit en maakt gebruik van de standaard niet-hoofdlettergevoelige hashcodeprovider en de standaard niet-hoofdlettergevoelige vergelijking.

NameValueCollection(IEqualityComparer)

Initialiseert een nieuw exemplaar van de NameValueCollection klasse die leeg is, heeft de standaardinitiële capaciteit en gebruikt het opgegeven IEqualityComparer object.

NameValueCollection(IHashCodeProvider, IComparer)
Verouderd.

Initialiseert een nieuw exemplaar van de NameValueCollection klasse die leeg is, heeft de standaardinitiële capaciteit en maakt gebruik van de opgegeven hashcodeprovider en de opgegeven vergelijkingsfunctie.

NameValueCollection(Int32, IEqualityComparer)

Initialiseert een nieuw exemplaar van de NameValueCollection klasse die leeg is, heeft de opgegeven initiële capaciteit en gebruikt het opgegeven IEqualityComparer object.

NameValueCollection(Int32, IHashCodeProvider, IComparer)
Verouderd.

Initialiseert een nieuw exemplaar van de NameValueCollection klasse die leeg is, heeft de opgegeven initiële capaciteit en maakt gebruik van de opgegeven hashcodeprovider en de opgegeven vergelijkingsfunctie.

NameValueCollection(Int32, NameValueCollection)

Kopieert de vermeldingen van de opgegeven NameValueCollection naar een nieuwe NameValueCollection met de opgegeven initiële capaciteit of dezelfde initiële capaciteit als het aantal gekopieerde vermeldingen, afhankelijk van wat groter is, en met behulp van de standaard niet-hoofdlettergevoelige hashcodeprovider en de standaard hoofdlettergevoelige vergelijking.

NameValueCollection(Int32)

Initialiseert een nieuw exemplaar van de NameValueCollection klasse die leeg is, heeft de opgegeven initiële capaciteit en maakt gebruik van de standaard niet-hoofdlettergevoelige hashcodeprovider en de standaard hoofdlettergevoelige vergelijking.

NameValueCollection(NameValueCollection)

Kopieert de vermeldingen van de opgegeven NameValueCollection naar een nieuwe NameValueCollection met dezelfde initiële capaciteit als het aantal gekopieerde vermeldingen en gebruikt dezelfde hashcodeprovider en dezelfde vergelijkingsfunctie als de bronverzameling.

NameValueCollection(SerializationInfo, StreamingContext)

Initialiseert een nieuw exemplaar van de NameValueCollection klasse die serialiseerbaar is en maakt gebruik van de opgegeven SerializationInfo en StreamingContext.

Eigenschappen

Name Description
AllKeys

Haalt alle sleutels op in de NameValueCollection.

Count

Hiermee haalt u het aantal sleutel-/waardeparen op dat is opgenomen in het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
IsReadOnly

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het NameObjectCollectionBase exemplaar het kenmerk Alleen-lezen heeft.

(Overgenomen van NameObjectCollectionBase)
Item[Int32]

Hiermee haalt u de vermelding op de opgegeven index van de NameValueCollection.

Item[String]

Hiermee haalt u de vermelding op of stelt u deze in met de opgegeven sleutel in de NameValueCollection.

Keys

Hiermee haalt u een NameObjectCollectionBase.KeysCollection exemplaar op dat alle sleutels in het NameObjectCollectionBase exemplaar bevat.

(Overgenomen van NameObjectCollectionBase)

Methoden

Name Description
Add(NameValueCollection)

Kopieert de vermeldingen in de opgegeven NameValueCollection waarde naar de huidige NameValueCollection.

Add(String, String)

Voegt een vermelding met de opgegeven naam en waarde toe aan de NameValueCollection.

BaseAdd(String, Object)

Voegt een vermelding met de opgegeven sleutel en waarde toe aan het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
BaseClear()

Hiermee verwijdert u alle vermeldingen uit het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
BaseGet(Int32)

Hiermee haalt u de waarde op van de vermelding in de opgegeven index van het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
BaseGet(String)

Hiermee haalt u de waarde op van de eerste vermelding met de opgegeven sleutel van het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
BaseGetAllKeys()

Retourneert een String matrix die alle sleutels in het NameObjectCollectionBase exemplaar bevat.

(Overgenomen van NameObjectCollectionBase)
BaseGetAllValues()

Retourneert een Object matrix die alle waarden in het NameObjectCollectionBase exemplaar bevat.

(Overgenomen van NameObjectCollectionBase)
BaseGetAllValues(Type)

Retourneert een matrix van het opgegeven type dat alle waarden in het NameObjectCollectionBase exemplaar bevat.

(Overgenomen van NameObjectCollectionBase)
BaseGetKey(Int32)

Hiermee haalt u de sleutel van de vermelding op in de opgegeven index van het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
BaseHasKeys()

Hiermee wordt een waarde opgehaald die aangeeft of het NameObjectCollectionBase exemplaar vermeldingen bevat waarvan de sleutels niet nullzijn.

(Overgenomen van NameObjectCollectionBase)
BaseRemove(String)

Hiermee verwijdert u de vermeldingen met de opgegeven sleutel uit het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
BaseRemoveAt(Int32)

Hiermee verwijdert u de vermelding in de opgegeven index van het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
BaseSet(Int32, Object)

Hiermee stelt u de waarde van de vermelding in op de opgegeven index van het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
BaseSet(String, Object)

Hiermee stelt u de waarde van de eerste vermelding in met de opgegeven sleutel in het NameObjectCollectionBase exemplaar, indien gevonden; anders voegt u een vermelding toe met de opgegeven sleutel en waarde in het NameObjectCollectionBase exemplaar.

(Overgenomen van NameObjectCollectionBase)
Clear()

De matrices in de cache ongeldig maken en alle vermeldingen uit de NameValueCollectionmap verwijderen.

CopyTo(Array, Int32)

Kopieert het hele NameValueCollection naar een compatibele eendimensionale Arraywaarde, beginnend bij de opgegeven index van de doelmatrix.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
Get(Int32)

Haalt de waarden op in de opgegeven index van de NameValueCollection gecombineerde in één door komma's gescheiden lijst.

Get(String)

Hiermee haalt u de waarden op die zijn gekoppeld aan de opgegeven sleutel uit de NameValueCollection gecombineerde sleutel in één door komma's gescheiden lijst.

GetEnumerator()

Retourneert een enumerator die door de NameObjectCollectionBase.

(Overgenomen van NameObjectCollectionBase)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetKey(Int32)

Hiermee haalt u de sleutel op de opgegeven index van de NameValueCollection.

GetObjectData(SerializationInfo, StreamingContext)

Implementeert de ISerializable interface en retourneert de gegevens die nodig zijn om het NameObjectCollectionBase exemplaar te serialiseren.

(Overgenomen van NameObjectCollectionBase)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
GetValues(Int32)

Hiermee haalt u de waarden op de opgegeven index van de NameValueCollection.

GetValues(String)

Haalt de waarden op die zijn gekoppeld aan de opgegeven sleutel van de NameValueCollection.

HasKeys()

Hiermee wordt een waarde opgehaald die aangeeft of de NameValueCollection sleutels bevat die niet nullzijn.

InvalidateCachedArrays()

Hiermee stelt u de matrices in de cache van de verzameling opnieuw in op null.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
OnDeserialization(Object)

Implementeert de ISerializable interface en verhoogt de deserialisatie-gebeurtenis wanneer de deserialisatie is voltooid.

(Overgenomen van NameObjectCollectionBase)
Remove(String)

Hiermee verwijdert u de vermeldingen met de opgegeven sleutel uit het NameObjectCollectionBase exemplaar.

Set(String, String)

Hiermee stelt u de waarde van een vermelding in de NameValueCollection.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
ICollection.CopyTo(Array, Int32)

Kopieert het hele NameObjectCollectionBase naar een compatibele eendimensionale Arraywaarde, beginnend bij de opgegeven index van de doelmatrix.

(Overgenomen van NameObjectCollectionBase)
ICollection.IsSynchronized

Hiermee wordt een waarde opgehaald die aangeeft of de toegang tot het NameObjectCollectionBase object wordt gesynchroniseerd (thread safe).

(Overgenomen van NameObjectCollectionBase)
ICollection.SyncRoot

Hiermee haalt u een object op dat kan worden gebruikt om de toegang tot het NameObjectCollectionBase object te synchroniseren.

(Overgenomen van NameObjectCollectionBase)

Extensiemethoden

Name Description
AsParallel(IEnumerable)

Hiermee schakelt u parallelle uitvoering van een query in.

AsQueryable(IEnumerable)

Converteert een IEnumerable naar een IQueryable.

Cast<TResult>(IEnumerable)

Cast de elementen van een IEnumerable naar het opgegeven type.

OfType<TResult>(IEnumerable)

Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type.

Van toepassing op

Veiligheid thread

Openbare statische (Shared in Visual Basic) leden van dit type zijn thread-veilig. Exemplaarleden zijn niet gegarandeerd thread-safe.

Deze implementatie biedt geen gesynchroniseerde wrapper (thread safe) voor een NameValueCollection, maar afgeleide klassen kunnen hun eigen gesynchroniseerde versies van de NameValueCollection klasse maken met behulp van de SyncRoot eigenschap van de NameObjectCollectionBase klasse.

Het inventariseren via een verzameling is intrinsiek geen threadveilige procedure. Zelfs wanneer een verzameling wordt gesynchroniseerd, kunnen andere threads de verzameling nog steeds wijzigen, waardoor de enumerator een uitzondering genereert. Om de veiligheid van threads tijdens de inventarisatie te garanderen, kunt u de verzameling vergrendelen tijdens de volledige inventarisatie of de uitzonderingen ondervangen die het gevolg zijn van wijzigingen die door andere threads zijn aangebracht.

Zie ook