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.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
void PrintKeysAndValues( NameValueCollection^ myCol );
void PrintKeysAndValues2( NameValueCollection^ myCol );
int main()
{
// Creates and initializes a new NameValueCollection.
NameValueCollection^ myCol = gcnew 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.
array<String^>^myStrArr = gcnew array<String^>(myCol->Count);
myCol->CopyTo( myStrArr, 0 );
Console::WriteLine( "The string array contains:" );
for each ( 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 );
}
void PrintKeysAndValues( NameValueCollection^ myCol )
{
Console::WriteLine( " KEY VALUE" );
for each ( String^ s in myCol->AllKeys )
Console::WriteLine( " {0,-10} {1}", s, myCol[s] );
Console::WriteLine();
}
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
*/
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 zu der NameObjectCollectionBasekann diese Klasse jedoch mehrere Zeichenfolgenwerte unter einem einzigen Schlüssel speichern.
Diese Klasse kann für Header, Abfragezeichenfolgen und Formulardaten verwendet werden.
Sammlungen dieses Typs behalten die Reihenfolge der Elemente nicht bei, und beim Auflisten der Auflistung ist keine bestimmte Reihenfolge garantiert.
Die Kapazität eines NameValueCollection ist die Anzahl der Elemente, die enthalten NameValueCollection können. Wenn Elemente hinzugefügt werden, wird die Kapazität automatisch bei Bedarf durch Neuzuweisung erhöht.
Der Hashcodeanbieter gibt Hashcodes für Schlüssel in aus NameValueCollection. Der Standard-Hashcodeanbieter ist der CaseInsensitiveHashCodeProvider.
Der Vergleich bestimmt, ob zwei Schlüssel gleich sind. Der Standardvergleich ist ein CaseInsensitiveComparer , der die Konventionen der invariante Kultur verwendet. Das heißt, bei Schlüsselvergleichen wird standardmäßig die Groß-/Kleinschreibung nicht beachtet. Rufen Sie zum Durchführen von Schlüsselvergleichen die NameValueCollection.NameValueCollection(IEqualityComparer) Groß-/Kleinschreibung auf, und geben Sie den Wert StringComparer.CurrentCulture, StringComparer.InvariantCultureoder StringComparer.Ordinal als equalityComparer
Argument an. Weitere Informationen dazu, wie sich Kultur auf Vergleiche und Sortierung auswirkt, finden Sie unter Ausführen Culture-Insensitive Zeichenfolgenvorgänge.
null
ist als Schlüssel oder als Wert zulässig.
Achtung
Die Get -Methode unterscheidet nicht zwischen null
den zurückgegebenen Werten, da der angegebene Schlüssel nicht gefunden und null
zurückgegeben wird, weil der dem Schlüssel zugeordnete Wert ist null
.
Konstruktoren
NameValueCollection() |
Initialisiert eine neue, leere Instanz der NameValueCollection-Klasse mit der anfänglichen Standardkapazität, wobei der Hashcode-Standardanbieter und die Standardvergleichsfunktion (Standardcomparer) verwendet werden, die beide die Groß- und Kleinschreibung nicht berücksichtigen. |
NameValueCollection(IEqualityComparer) |
Initialisiert eine neue, leere Instanz der NameValueCollection-Klasse mit der anfänglichen Standardkapazität und dem angegebenen IEqualityComparer-Objekt. |
NameValueCollection(IHashCodeProvider, IComparer) |
Veraltet.
Veraltet.
Initialisiert eine neue, leere Instanz der NameValueCollection-Klasse mit der standardmäßigen Anfangskapazität, wobei der angegebene Hashcodeanbieter und Comparer verwendet werden. |
NameValueCollection(Int32) |
Initialisiert eine neue, leere Instanz der NameValueCollection-Klasse mit der angegebenen Anfangskapazität, wobei der Hashcode-Standardanbieter und der Standardcomparer verwendet werden, die beide die Groß- und Kleinschreibung nicht berücksichtigen. |
NameValueCollection(Int32, IEqualityComparer) |
Initialisiert eine neue, leere Instanz der NameValueCollection-Klasse mit der angegebenen Anfangskapazität und dem angegebenen IEqualityComparer-Objekt. |
NameValueCollection(Int32, IHashCodeProvider, IComparer) |
Veraltet.
Veraltet.
Initialisiert eine neue, leere Instanz der NameValueCollection-Klasse mit der angegebenen Anfangskapazität, wobei der angegebene Hashcodeanbieter und Comparer verwendet werden. |
NameValueCollection(Int32, NameValueCollection) |
Kopiert die Einträge aus dem angegebenen NameValueCollection-Objekt in ein neues NameValueCollection-Objekt mit der angegebenen Anfangskapazität bzw. mit einer Anfangskapazität, die der Anzahl der kopierten Einträge entspricht, je nachdem, welche größer ist. Es werden der Hashcode-Standardanbieter und der Standardcomparer verwendet, die die Groß- und Kleinschreibung nicht berücksichtigen. |
NameValueCollection(NameValueCollection) |
Kopiert die Einträge aus dem angegebenen NameValueCollection-Objekt in ein neues NameValueCollection-Objekt, dessen Anfangskapazität der Anzahl von kopierten Einträge entspricht, und verwendet denselben Hashcodeanbieter und Comparer wie die Quellauflistung. |
NameValueCollection(SerializationInfo, StreamingContext) |
Veraltet.
Initialisiert eine neue Instanz der NameValueCollection-Klasse, die serialisierbar ist und die angegebene SerializationInfo und den angegebenen StreamingContext verwendet. |
Eigenschaften
AllKeys |
Ruft alle Schlüssel in der NameValueCollection-Instanz ab. |
Count |
Ruft die Anzahl von Schlüssel-Wert-Paaren in der NameObjectCollectionBase-Instanz ab. (Geerbt von NameObjectCollectionBase) |
IsReadOnly |
Ruft einen Wert ab, der angibt, ob die NameObjectCollectionBase-Instanz schreibgeschützt ist, oder legt diesen fest. (Geerbt von NameObjectCollectionBase) |
Item[Int32] |
Ruft den Eintrag am angegebenen Index der NameValueCollection-Instanz ab. |
Item[String] |
Ruft den Eintrag mit dem angegebenen Schlüssel in der NameValueCollection-Instanz ab oder legt diesen fest. |
Keys |
Ruft eine NameObjectCollectionBase.KeysCollection-Instanz ab, die alle Schlüssel in der NameObjectCollectionBase-Instanz enthält. (Geerbt von NameObjectCollectionBase) |
Methoden
Add(NameValueCollection) |
Kopiert die Einträge in der angegebenen NameValueCollection-Instanz in die aktuelle NameValueCollection-Instanz. |
Add(String, String) |
Fügt der NameValueCollection-Instanz einen Eintrag mit dem angegebenen Schlüssel und Wert hinzu. |
BaseAdd(String, Object) |
Fügt einen Eintrag mit dem angegebenen Schlüssel und Wert der NameObjectCollectionBase-Instanz hinzu. (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 der NameObjectCollectionBase-Instanz enthält. (Geerbt von NameObjectCollectionBase) |
BaseGetAllValues() |
Gibt ein Object-Array zurück, das alle Werte der NameObjectCollectionBase-Instanz enthält. (Geerbt von NameObjectCollectionBase) |
BaseGetAllValues(Type) |
Gibt ein Array des angegebenen Typs zurück, das alle Werte 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. Wenn der Schlüssel nicht vorhanden ist, wird der NameObjectCollectionBase-Instanz ein Eintrag mit dem angegebenen Wert und Schlüssel hinzugefügt. (Geerbt von NameObjectCollectionBase) |
Clear() |
Erklärt die zwischengespeicherten Arrays für ungültig und entfernt alle Einträge aus der NameValueCollection-Instanz. |
CopyTo(Array, Int32) |
Kopiert die gesamte NameValueCollection-Instanz in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
Get(Int32) |
Ruft die Werte am angegebenen Index der NameValueCollection-Instanz ab, die in einer einzigen, durch Trennzeichen getrennten Liste zusammengefasst werden. |
Get(String) |
Ruft die dem angegebenen Schlüssel zugeordneten Werte aus der NameValueCollection-Instanz ab, die in einer einzigen, durch Trennzeichen getrennten Liste zusammengefasst werden. |
GetEnumerator() |
Gibt einen Enumerator zurück, der die NameObjectCollectionBase durchläuft. (Geerbt von NameObjectCollectionBase) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetKey(Int32) |
Ruft den Schlüssel am angegebenen Index der NameValueCollection-Instanz ab. |
GetObjectData(SerializationInfo, StreamingContext) |
Veraltet.
Implementiert die ISerializable-Schnittstelle und gibt die zum Serialisieren der NameObjectCollectionBase-Instanz erforderlichen Daten zurück. (Geerbt von NameObjectCollectionBase) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
GetValues(Int32) |
Ruft die Werte am angegebenen Index der NameValueCollection-Instanz ab. |
GetValues(String) |
Ruft aus der NameValueCollection-Instanz die Werte ab, die dem angegebenen Schlüssel zugeordnet sind. |
HasKeys() |
Ruft einen Wert ab, der angibt, ob die NameValueCollection-Instanz Schlüssel enthält, die nicht |
InvalidateCachedArrays() |
Setzt die zwischengespeicherten Arrays der Auflistung auf |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnDeserialization(Object) |
Implementiert die ISerializable-Schnittstelle und löst das Deserialisierungsereignis aus, sobald 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-Instanz fest. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
ICollection.CopyTo(Array, Int32) |
Kopiert die gesamte NameObjectCollectionBase-Instanz in ein kompatibles eindimensionales 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 (threadsicher) ist. (Geerbt von NameObjectCollectionBase) |
ICollection.SyncRoot |
Ruft ein Objekt ab, mit dem der Zugriff auf das NameObjectCollectionBase-Objekt synchronisiert werden kann. (Geerbt von NameObjectCollectionBase) |
Erweiterungsmethoden
Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um |
OfType<TResult>(IEnumerable) |
Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs |
AsParallel(IEnumerable) |
Ermöglicht die Parallelisierung einer Abfrage. |
AsQueryable(IEnumerable) |
Konvertiert einen IEnumerable in einen IQueryable. |
Gilt für:
Threadsicherheit
Öffentliche statische (Shared
in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Diese Implementierung stellt keinen synchronisierten (threadsicheren) Wrapper für einen bereit NameValueCollection, aber abgeleitete Klassen können ihre eigenen synchronisierten Versionen von NameValueCollection mithilfe der SyncRoot -Eigenschaft der NameObjectCollectionBase -Klasse erstellen.
Das Aufzählen durch eine Auflistung ist grundsätzlich keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, besteht die Möglichkeit, dass andere Threads sie ändern. Dies führt dazu, dass der Enumerator eine Ausnahme auslöst. Um während der Enumeration Threadsicherheit zu gewährleisten, können Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen, die aus von anderen Threads stammenden Änderungen resultieren, abfangen.