NameValueCollection Klasse

Definition

Stellt eine Auflistung der zugeordneten String Schlüssel und String Werte dar, auf die entweder mit dem Schlüssel oder mit dem Index zugegriffen werden kann.

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
Vererbung
NameValueCollection
Abgeleitet
Attribute

Beispiele

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

Hinweise

Diese Auflistung basiert auf der NameObjectCollectionBase Klasse. Jedes Element der Auflistung ist ein Schlüssel-Wert-Paar. Im Gegensatz zur NameObjectCollectionBaseKlasse kann diese Klasse jedoch mehrere Zeichenfolgenwerte unter einem einzelnen Schlüssel speichern.

Diese Klasse kann für Kopfzeilen, Abfragezeichenfolgen und Formulardaten verwendet werden.

Auflistungen dieses Typs behalten die Sortierung von Elementen nicht bei, und beim Aufzählen der Auflistung wird keine bestimmte Sortierung garantiert.

Die Kapazität eines Elements NameValueCollection ist die Anzahl der Elemente, die aufbewahrt NameValueCollection werden können. Wenn Elemente hinzugefügt werden, wird die Kapazität automatisch erhöht, wenn dies durch Umschichtung erforderlich ist.

Der Hashcodeanbieter gibt Hashcodes für Schlüssel in der NameValueCollection. Der standardmäßige Hashcodeanbieter ist der CaseInsensitiveHashCodeProvider.

Der Vergleich bestimmt, ob zwei Schlüssel gleich sind. Der Standardvergleicher ist eine CaseInsensitiveComparer , die die Konventionen der invarianten Kultur verwendet, d. h. Schlüsselvergleiche werden standardmäßig ohne Groß-/Kleinschreibung unterschieden. Rufen Sie den NameValueCollection.NameValueCollection(IEqualityComparer) Konstruktor auf, um Vergleiche zwischen Groß- und StringComparer.Ordinal Kleinschreibung durchzuführen, und geben Sie einen Wert von StringComparer.CurrentCulture, oder StringComparer.InvariantCultureals equalityComparer Argument an. Weitere Informationen dazu, wie sich Kultur auf Vergleiche und Sortierung auswirkt, finden Sie unter Ausführen von Culture-Insensitive Zeichenfolgenvorgängen.

null ist als Schlüssel oder als Wert zulässig.

Vorsicht

Die Get Methode unterscheidet nicht zwischen null dem zurückgegebenen, weil der angegebene Schlüssel nicht gefunden wird und null das zurückgegeben wird, weil der dem Schlüssel zugeordnete Wert ist null.

Konstruktoren

Name Beschreibung
NameValueCollection()

Initialisiert eine neue Instanz der klasse, die NameValueCollection leer ist, verfügt über die Standardkapazität für die Anfängliche Kapazität und verwendet den Standardmäßigen Hashcodeanbieter für die Groß-/Kleinschreibung und den Standardmäßigen Vergleich der Groß-/Kleinschreibung.

NameValueCollection(IEqualityComparer)

Initialisiert eine neue Instanz der klasse, die NameValueCollection leer ist, die Standard-Anfangskapazität aufweist und das angegebene IEqualityComparer Objekt verwendet.

NameValueCollection(IHashCodeProvider, IComparer)
Veraltet.

Initialisiert eine neue Instanz der klasse, die NameValueCollection leer ist, hat die Standard-Anfangskapazität und verwendet den angegebenen Hashcodeanbieter und den angegebenen Vergleich.

NameValueCollection(Int32, IEqualityComparer)

Initialisiert eine neue Instanz der Klasse, die NameValueCollection leer ist, die angegebene Anfangskapazität aufweist und das angegebene IEqualityComparer Objekt verwendet.

NameValueCollection(Int32, IHashCodeProvider, IComparer)
Veraltet.

Initialisiert eine neue Instanz der klasse, die NameValueCollection leer ist, hat die angegebene Anfangskapazität und verwendet den angegebenen Hashcodeanbieter und den angegebenen Vergleich.

NameValueCollection(Int32, NameValueCollection)

Kopiert die Einträge aus dem angegebenen NameValueCollection Wert in ein neues NameValueCollection mit der angegebenen Anfangskapazität oder derselben Anfangskapazität wie die Anzahl der kopierten Einträge, je nachdem, welcher Wert größer ist, und verwendet den Standardmäßigen Hashcodeanbieter für die Groß-/Kleinschreibung und den Standardmäßigen Vergleich zwischen Groß- und Kleinschreibung.

NameValueCollection(Int32)

Initialisiert eine neue Instanz der NameValueCollection leeren Klasse, verfügt über die angegebene Anfangskapazität und verwendet den Standardmäßigen Hashcodeanbieter für die Groß-/Kleinschreibung und den Standardmäßigen Vergleich zwischen Groß- und Kleinschreibung.

NameValueCollection(NameValueCollection)

Kopiert die Einträge aus dem angegebenen NameValueCollection in ein neues NameValueCollection mit der gleichen Anfangskapazität wie die Anzahl der kopierten Einträge und die Verwendung desselben Hashcodeanbieters und desselben Vergleichs wie die Quellauflistung.

NameValueCollection(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der Klasse, die NameValueCollection serialisierbar ist und die angegebene SerializationInfo und StreamingContextverwendet .

Eigenschaften

Name Beschreibung
AllKeys

Ruft alle Tasten in der NameValueCollection.

Count

Ruft die Anzahl der Schlüssel-Wert-Paare ab, die in der NameObjectCollectionBase Instanz enthalten sind.

(Geerbt von NameObjectCollectionBase)
IsReadOnly

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die NameObjectCollectionBase Instanz schreibgeschützt ist.

(Geerbt von NameObjectCollectionBase)
Item[Int32]

Ruft den Eintrag am angegebenen Index der .NameValueCollection

Item[String]

Dient zum Abrufen oder Festlegen des Eintrags mit dem angegebenen Schlüssel in der NameValueCollection.

Keys

Ruft eine NameObjectCollectionBase.KeysCollection Instanz ab, die alle Schlüssel in der NameObjectCollectionBase Instanz enthält.

(Geerbt von NameObjectCollectionBase)

Methoden

Name Beschreibung
Add(NameValueCollection)

Kopiert die Einträge in der angegebenen NameValueCollection in die aktuelle .NameValueCollection

Add(String, String)

Fügt dem angegebenen Namen und Wert NameValueCollectioneinen Eintrag hinzu.

BaseAdd(String, Object)

Fügt der Instanz einen Eintrag mit dem angegebenen Schlüssel und Wert hinzu NameObjectCollectionBase .

(Geerbt von NameObjectCollectionBase)
BaseClear()

Entfernt alle Einträge aus der NameObjectCollectionBase Instanz.

(Geerbt von NameObjectCollectionBase)
BaseGet(Int32)

Ruft den Wert des Eintrags am angegebenen Index der NameObjectCollectionBase Instanz ab.

(Geerbt von NameObjectCollectionBase)
BaseGet(String)

Ruft den Wert des ersten Eintrags mit dem angegebenen Schlüssel aus der NameObjectCollectionBase Instanz ab.

(Geerbt von NameObjectCollectionBase)
BaseGetAllKeys()

Gibt ein String Array zurück, das alle Schlüssel in der NameObjectCollectionBase Instanz enthält.

(Geerbt von NameObjectCollectionBase)
BaseGetAllValues()

Gibt ein Object Array zurück, das alle Werte in der NameObjectCollectionBase Instanz enthält.

(Geerbt von NameObjectCollectionBase)
BaseGetAllValues(Type)

Gibt ein Array des angegebenen Typs zurück, das alle Werte in der NameObjectCollectionBase Instanz enthält.

(Geerbt von NameObjectCollectionBase)
BaseGetKey(Int32)

Ruft den Schlüssel des Eintrags am angegebenen Index der NameObjectCollectionBase Instanz ab.

(Geerbt von NameObjectCollectionBase)
BaseHasKeys()

Ruft einen Wert ab, der angibt, ob die NameObjectCollectionBase Instanz Einträge enthält, deren Schlüssel nicht nullsind.

(Geerbt von NameObjectCollectionBase)
BaseRemove(String)

Entfernt die Einträge mit dem angegebenen Schlüssel aus der NameObjectCollectionBase Instanz.

(Geerbt von NameObjectCollectionBase)
BaseRemoveAt(Int32)

Entfernt den Eintrag am angegebenen Index der NameObjectCollectionBase Instanz.

(Geerbt von NameObjectCollectionBase)
BaseSet(Int32, Object)

Legt den Wert des Eintrags am angegebenen Index der NameObjectCollectionBase Instanz fest.

(Geerbt von NameObjectCollectionBase)
BaseSet(String, Object)

Legt den Wert des ersten Eintrags mit dem angegebenen Schlüssel in der NameObjectCollectionBase Instanz fest, falls gefunden. Andernfalls wird der Instanz ein Eintrag mit dem angegebenen Schlüssel und Wert NameObjectCollectionBase hinzugefügt.

(Geerbt von NameObjectCollectionBase)
Clear()

Ungültig werden die zwischengespeicherten Arrays und alle Einträge aus der NameValueCollection.

CopyTo(Array, Int32)

Kopiert das Gesamte NameValueCollection in einen kompatiblen eindimensionalen Array, beginnend am angegebenen Index des Zielarrays.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
Get(Int32)

Ruft die Werte am angegebenen Index der NameValueCollection kombinierten in einer durch Trennzeichen getrennten Liste ab.

Get(String)

Ruft die Werte ab, die dem angegebenen Schlüssel aus der NameValueCollection kombinierten durch Trennzeichen getrennten Liste zugeordnet sind.

GetEnumerator()

Gibt einen Enumerator zurück, der durch die NameObjectCollectionBaseEnumerator durchläuft.

(Geerbt von NameObjectCollectionBase)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetKey(Int32)

Ruft den Schlüssel am angegebenen Index der .NameValueCollection

GetObjectData(SerializationInfo, StreamingContext)

Implementiert die ISerializable Schnittstelle und gibt die zum Serialisieren der NameObjectCollectionBase Instanz erforderlichen Daten zurück.

(Geerbt von NameObjectCollectionBase)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
GetValues(Int32)

Ruft die Werte am angegebenen Index der .NameValueCollection

GetValues(String)

Ruft die Werte ab, die dem angegebenen Schlüssel zugeordnet sind, aus dem NameValueCollection.

HasKeys()

Ruft einen Wert ab, der angibt, nullob die NameValueCollection Nicht-Schlüssel enthalten.

InvalidateCachedArrays()

Setzt die zwischengespeicherten Arrays der Auflistung auf null.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
OnDeserialization(Object)

Implementiert die ISerializable Schnittstelle und löst das Deserialisierungsereignis aus, wenn die Deserialisierung abgeschlossen ist.

(Geerbt von NameObjectCollectionBase)
Remove(String)

Entfernt die Einträge mit dem angegebenen Schlüssel aus der NameObjectCollectionBase Instanz.

Set(String, String)

Legt den Wert eines Eintrags in der NameValueCollection.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
ICollection.CopyTo(Array, Int32)

Kopiert das Gesamte NameObjectCollectionBase in einen kompatiblen eindimensionalen Array, beginnend am angegebenen Index des Zielarrays.

(Geerbt von NameObjectCollectionBase)
ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf das NameObjectCollectionBase Objekt synchronisiert wird (Threadsicher).

(Geerbt von NameObjectCollectionBase)
ICollection.SyncRoot

Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf das NameObjectCollectionBase Objekt verwendet werden kann.

(Geerbt von NameObjectCollectionBase)

Erweiterungsmethoden

Name Beschreibung
AsParallel(IEnumerable)

Aktiviert die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Wandelt eine IEnumerable in eine IQueryableum.

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um.

OfType<TResult>(IEnumerable)

Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ.

Gilt für:

Threadsicherheit

Öffentliche statische Elemente (Shared in Visual Basic) dieses Typs sind threadsicher. Instanzenmitglieder sind nicht garantiert threadsicher.

Diese Implementierung stellt keinen synchronisierten (threadsicheren) Wrapper für eine NameValueCollection, abgeleitete Klassen können jedoch eigene synchronisierte Versionen der NameValueCollection Klasse erstellen SyncRootNameObjectCollectionBase .

Das Aufzählen durch eine Sammlung ist in der Regel keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, können andere Threads die Auflistung weiterhin ändern, wodurch der Enumerator eine Ausnahme auslöst. Um die Threadsicherheit während der Enumeration zu gewährleisten, können Sie die Auflistung entweder während der gesamten Enumeration sperren oder die Ausnahmen erfassen, die sich aus Änderungen ergeben, die von anderen Threads vorgenommen wurden.

Weitere Informationen