NameValueCollection Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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 |
| 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, |
| InvalidateCachedArrays() |
Setzt die zwischengespeicherten Arrays der Auflistung auf |
| 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.