NameValueCollection Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- Dědičnost
- Odvozené
- Atributy
Příklady
#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
'
'
Poznámky
Tato kolekce je založená NameObjectCollectionBase na třídě. Každý prvek kolekce je pár klíč/hodnota. Na rozdíl od NameObjectCollectionBasetéto třídy však může uložit více řetězcových hodnot pod jedním klíčem.
Tuto třídu lze použít pro hlavičky, řetězce dotazů a data formuláře.
Kolekce tohoto typu nezachovají pořadí prvků a při výčtu kolekce není zaručeno žádné konkrétní řazení.
Kapacita a NameValueCollection je počet prvků, které NameValueCollection může obsahovat. Při přidání prvků se její kapacita automaticky zvýší podle potřeby prostřednictvím reallokace.
Zprostředkovatel hash kódu odesílá kód hash pro klíče v souboru NameValueCollection. Výchozí zprostředkovatel kódu hash je CaseInsensitiveHashCodeProvider.
Porovnávač určuje, jestli jsou dva klíče stejné. Výchozí porovnávací nástroj je CaseInsensitiveComparer ten, který používá konvence invariantní jazykové verze. To znamená, že klíčové porovnání jsou ve výchozím nastavení nerozlišující malá a velká písmena. Chcete-li provést porovnání klíčových písmen, zavolejte NameValueCollection.NameValueCollection(IEqualityComparer) konstruktor a zadejte hodnotu StringComparer.CurrentCulture, StringComparer.InvariantCulturenebo StringComparer.Ordinal jako equalityComparer
argument. Další informace o tom, jak jazyková verze ovlivňuje porovnání a řazení, najdete v tématu Provádění operací s řetězci Culture-Insensitive.
null
je povolen jako klíč nebo hodnota.
Upozornění
Metoda Get nerozlišuje null
, která je vrácena, protože zadaný klíč nebyl nalezen a null
který je vrácen, protože hodnota přidružená k klíči je null
.
Konstruktory
NameValueCollection() |
Inicializuje novou instanci NameValueCollection třídy, která je prázdná, má výchozí počáteční kapacitu a používá výchozí zprostředkovatele kódu hash nerozlišující malá a velká a malá a malá písmena. |
NameValueCollection(IEqualityComparer) |
Inicializuje novou instanci NameValueCollection třídy, která je prázdná, má výchozí počáteční kapacitu a používá zadaný IEqualityComparer objekt. |
NameValueCollection(IHashCodeProvider, IComparer) |
Zastaralé.
Zastaralé.
Inicializuje novou instanci třídy, která je prázdná, má výchozí počáteční kapacitu a používá zadaného NameValueCollection zprostředkovatele hash kódu a zadaný porovnávač. |
NameValueCollection(Int32) |
Inicializuje novou instanci NameValueCollection třídy, která je prázdná, má zadanou počáteční kapacitu a používá výchozí zprostředkovatele kódu hash nerozlišující malá a velká a malá a malá písmena. |
NameValueCollection(Int32, IEqualityComparer) |
Inicializuje novou instanci NameValueCollection třídy, která je prázdná, má zadanou počáteční kapacitu a používá zadaný IEqualityComparer objekt. |
NameValueCollection(Int32, IHashCodeProvider, IComparer) |
Zastaralé.
Zastaralé.
Inicializuje novou instanci NameValueCollection třídy, která je prázdná, má zadanou počáteční kapacitu a používá zadaného zprostředkovatele hash kódu a zadaný porovnávač. |
NameValueCollection(Int32, NameValueCollection) |
Zkopíruje položky zadané do NameValueCollection nového NameValueCollection se zadanou počáteční kapacitou nebo stejnou počáteční kapacitou jako počet zkopírovaných položek, podle toho, co je větší, a použije výchozího zprostředkovatele hodnot hash nerozlišující velká a malá a malá písmena a výchozí porovnávání malých a malých písmen. |
NameValueCollection(NameValueCollection) |
Zkopíruje položky ze zadaného NameValueCollection do nového NameValueCollection se stejnou počáteční kapacitou jako počet zkopírovaných položek a pomocí stejného zprostředkovatele kódu hash a stejného porovnávače jako zdrojová kolekce. |
NameValueCollection(SerializationInfo, StreamingContext) |
Inicializuje novou instanci NameValueCollection třídy, která je serializovatelná a používá zadané SerializationInfo a StreamingContext. |
Vlastnosti
AllKeys |
Získá všechny klíče v sadě NameValueCollection. |
Count |
Získá počet párů klíč/hodnota obsažených v NameObjectCollectionBase instanci. (Zděděno od NameObjectCollectionBase) |
IsReadOnly |
Získá nebo nastaví hodnotu určující, zda NameObjectCollectionBase instance je jen pro čtení. (Zděděno od NameObjectCollectionBase) |
Item[Int32] |
Získá položku v zadaném indexu NameValueCollection. |
Item[String] |
Získá nebo nastaví položku se zadaným klíčem v NameValueCollection. |
Keys |
NameObjectCollectionBase.KeysCollection Získá instanci, která obsahuje všechny klíče v NameObjectCollectionBase instanci. (Zděděno od NameObjectCollectionBase) |
Metody
Add(NameValueCollection) |
Zkopíruje položky zadané NameValueCollection do aktuálního NameValueCollectionsouboru . |
Add(String, String) |
Přidá položku se zadaným názvem a hodnotou do NameValueCollectionsouboru . |
BaseAdd(String, Object) |
Přidá položku se zadaným klíčem a hodnotou do NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
BaseClear() |
Odebere všechny položky z NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
BaseGet(Int32) |
Získá hodnotu položky v zadaném indexu NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
BaseGet(String) |
Získá hodnotu první položky se zadaným klíčem z NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
BaseGetAllKeys() |
String Vrátí pole obsahující všechny klíče v NameObjectCollectionBase instanci. (Zděděno od NameObjectCollectionBase) |
BaseGetAllValues() |
Vrátí matici Object , která obsahuje všechny hodnoty v NameObjectCollectionBase instanci. (Zděděno od NameObjectCollectionBase) |
BaseGetAllValues(Type) |
Vrátí pole zadaného typu, které obsahuje všechny hodnoty v NameObjectCollectionBase instanci. (Zděděno od NameObjectCollectionBase) |
BaseGetKey(Int32) |
Získá klíč položky v zadaném indexu NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
BaseHasKeys() |
Získá hodnotu určující, zda NameObjectCollectionBase instance obsahuje položky, jejichž klíče nejsou |
BaseRemove(String) |
Odebere položky se zadaným klíčem z NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
BaseRemoveAt(Int32) |
Odebere položku v zadaném indexu NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
BaseSet(Int32, Object) |
Nastaví hodnotu položky v zadaném indexu NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
BaseSet(String, Object) |
Nastaví hodnotu první položky se zadaným klíčem v NameObjectCollectionBase instanci, pokud se najde. V opačném případě přidá položku se zadaným klíčem a hodnotou do NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
Clear() |
Zruší platnost polí uložených v mezipaměti a odebere všechny položky z pole NameValueCollection. |
CopyTo(Array, Int32) |
Zkopíruje celý NameValueCollection objekt do kompatibilního jednorozměrného Array, počínaje zadaným indexem cílového pole. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
Get(Int32) |
Získá hodnoty v zadaném indexu kombinovaného NameValueCollection do jednoho seznamu odděleného čárkami. |
Get(String) |
Získá hodnoty přidružené k zadanému klíči z kombinovaného NameValueCollection seznamu do jednoho seznamu odděleného čárkami. |
GetEnumerator() |
Vrátí enumerátor, který iteruje přes NameObjectCollectionBase. (Zděděno od NameObjectCollectionBase) |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetKey(Int32) |
Získá klíč v zadaném indexu NameValueCollection. |
GetObjectData(SerializationInfo, StreamingContext) |
Implementuje ISerializable rozhraní a vrátí data potřebná k serializaci NameObjectCollectionBase instance. (Zděděno od NameObjectCollectionBase) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
GetValues(Int32) |
Získá hodnoty v zadaném indexu NameValueCollection. |
GetValues(String) |
Získá hodnoty přidružené k zadanému klíči NameValueCollectionz . |
HasKeys() |
Získá hodnotu určující, zda NameValueCollection obsahuje klíče, které nejsou |
InvalidateCachedArrays() |
Obnoví pole v mezipaměti kolekce na |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
OnDeserialization(Object) |
Implementuje ISerializable rozhraní a vyvolá událost deserializace po dokončení deserializace. (Zděděno od NameObjectCollectionBase) |
Remove(String) |
Odebere položky se zadaným klíčem z NameObjectCollectionBase instance. |
Set(String, String) |
Nastaví hodnotu položky v sadě NameValueCollection. |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
ICollection.CopyTo(Array, Int32) |
Zkopíruje celý NameObjectCollectionBase objekt do kompatibilního jednorozměrného Array, počínaje zadaným indexem cílového pole. (Zděděno od NameObjectCollectionBase) |
ICollection.IsSynchronized |
Získá hodnotu označující, zda je přístup k objektu NameObjectCollectionBase synchronizován (bezpečné vlákno). (Zděděno od NameObjectCollectionBase) |
ICollection.SyncRoot |
Získá objekt, který lze použít k synchronizaci přístupu k objektu NameObjectCollectionBase . (Zděděno od NameObjectCollectionBase) |
Metody rozšíření
Cast<TResult>(IEnumerable) |
Přetypuje prvky zadaného IEnumerable typu. |
OfType<TResult>(IEnumerable) |
Filtruje prvky IEnumerable založené na zadaném typu. |
AsParallel(IEnumerable) |
Umožňuje paralelizaci dotazu. |
AsQueryable(IEnumerable) |
Převede na IEnumerable IQueryable. |
Platí pro
Bezpečný přístup z více vláken
Veřejné statické členy tohoto typu (Shared
v Visual Basic) jsou bezpečné pro vlákno. U členů instancí není zaručena bezpečnost pro přístup z více vláken.
Tato implementace neposkytuje synchronizovaný obálku (bezpečné vlákno) pro určitou NameValueCollectiontřídu, ale odvozené třídy mohou vytvořit vlastní synchronizované verze NameValueCollection pomocí SyncRoot vlastnosti NameObjectCollectionBase třídy.
Výčet prostřednictvím kolekce není vnitřně bezpečným postupem vlákna. I v případě, že jde o synchronizovanou kolekci, mohou úpravy provádět i ostatní vlákna, což způsobuje vyvolání výjimky enumerátorem. K zaručení bezpečnosti přístupu z více vláken můžete buďto zamknout kolekci na celou dobu práce s výčtem, nebo zachycovat výjimky vzniklé v důsledku změn prováděných ostatními vlákny.