NameValueCollection Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- Arv
- Härledda
- Attribut
Exempel
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
'
'
Kommentarer
Den här samlingen baseras på NameObjectCollectionBase klassen. Varje element i samlingen är ett nyckel/värde-par. Men till skillnad från kan den NameObjectCollectionBasehär klassen lagra flera strängvärden under en enda nyckel.
Den här klassen kan användas för rubriker, frågesträngar och formulärdata.
Samlingar av den här typen bevarar inte ordningen på element och ingen särskild ordning garanteras när samlingen räknas upp.
Kapaciteten för en NameValueCollection är antalet element som NameValueCollection kan hållas. När element läggs till ökas dess kapacitet automatiskt efter behov genom omfördelning.
Hash-kodprovidern delar ut hash-koder för nycklar i NameValueCollection. Standard-hash-kodprovidern CaseInsensitiveHashCodeProviderär .
Jämförelsen avgör om två nycklar är lika med. Standardjämförelsen är en CaseInsensitiveComparer som använder konventionerna i den invarianta kulturen, det vill ex. viktiga jämförelser är skiftlägesokänsliga som standard. Om du vill utföra skiftlägeskänsliga nyckeljämförelser anropar NameValueCollection.NameValueCollection(IEqualityComparer) du konstruktorn och anger värdet StringComparer.CurrentCulture, StringComparer.InvariantCultureeller StringComparer.Ordinal som equalityComparer argument. Mer information om hur kultur påverkar jämförelser och sortering finns i Utföra Culture-Insensitive strängåtgärder.
null tillåts som en nyckel eller som ett värde.
Caution
Metoden Get skiljer inte mellan null som returneras eftersom den angivna nyckeln inte hittas och null som returneras eftersom värdet som är associerat med nyckeln är null.
Konstruktorer
| Name | Description |
|---|---|
| NameValueCollection() |
Initierar en ny instans av NameValueCollection klassen som är tom, har standardinitierad kapacitet och använder standardprovidern för skiftlägesokänslig hash-kod och standardfallsokänslig jämförelse. |
| NameValueCollection(IEqualityComparer) |
Initierar en ny instans av NameValueCollection klassen som är tom, har standardinitieringskapaciteten och använder det angivna IEqualityComparer objektet. |
| NameValueCollection(IHashCodeProvider, IComparer) |
Föråldrad.
Initierar en ny instans av NameValueCollection klassen som är tom, har den ursprungliga standardkapaciteten och använder den angivna hash-kodprovidern och den angivna jämförelsen. |
| NameValueCollection(Int32, IEqualityComparer) |
Initierar en ny instans av NameValueCollection klassen som är tom, har den angivna initiala kapaciteten och använder det angivna IEqualityComparer objektet. |
| NameValueCollection(Int32, IHashCodeProvider, IComparer) |
Föråldrad.
Initierar en ny instans av NameValueCollection klassen som är tom, har den angivna initiala kapaciteten och använder den angivna hash-kodprovidern och den angivna jämförelsen. |
| NameValueCollection(Int32, NameValueCollection) |
Kopierar posterna från den angivna NameValueCollection till en ny NameValueCollection med den angivna initiala kapaciteten eller samma initiala kapacitet som antalet kopierade poster, beroende på vilket som är större, och använder standardvärdet skiftlägesokänslig hash-kodprovider och standardfallsokänslig jämförelse. |
| NameValueCollection(Int32) |
Initierar en ny instans av NameValueCollection klassen som är tom, har den angivna initiala kapaciteten och använder standardprovidern för skiftlägesokänslig hashkod och standardfallsokänslig jämförelse. |
| NameValueCollection(NameValueCollection) |
Kopierar posterna från den angivna NameValueCollection till en ny NameValueCollection med samma initiala kapacitet som antalet poster som kopieras och använder samma hashkodprovider och samma jämförelse som källsamlingen. |
| NameValueCollection(SerializationInfo, StreamingContext) |
Initierar en ny instans av NameValueCollection klassen som är serialiserbar och använder angiven SerializationInfo och StreamingContext. |
Egenskaper
| Name | Description |
|---|---|
| AllKeys |
Hämtar alla nycklar i NameValueCollection. |
| Count |
Hämtar antalet nyckel/värde-par som finns i instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| IsReadOnly |
Hämtar eller anger ett värde som anger om instansen NameObjectCollectionBase är skrivskyddad. (Ärvd från NameObjectCollectionBase) |
| Item[Int32] |
Hämtar posten vid det angivna indexet för NameValueCollection. |
| Item[String] |
Hämtar eller anger posten med den angivna nyckeln i NameValueCollection. |
| Keys |
Hämtar en NameObjectCollectionBase.KeysCollection instans som innehåller alla nycklar i instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
Metoder
| Name | Description |
|---|---|
| Add(NameValueCollection) |
Kopierar posterna i angivet NameValueCollection till den aktuella NameValueCollection. |
| Add(String, String) |
Lägger till en post med det angivna namnet och värdet i NameValueCollection. |
| BaseAdd(String, Object) |
Lägger till en post med den angivna nyckeln och värdet i instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseClear() |
Tar bort alla poster från instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseGet(Int32) |
Hämtar värdet för posten vid det angivna indexet för instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseGet(String) |
Hämtar värdet för den första posten med den angivna nyckeln från instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseGetAllKeys() |
Returnerar en String matris som innehåller alla nycklar i instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseGetAllValues() |
Returnerar en Object matris som innehåller alla värden i instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseGetAllValues(Type) |
Returnerar en matris av den angivna typen som innehåller alla värden i instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseGetKey(Int32) |
Hämtar nyckeln för posten vid det angivna indexet för instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseHasKeys() |
Hämtar ett värde som anger om instansen NameObjectCollectionBase innehåller poster vars nycklar inte |
| BaseRemove(String) |
Tar bort posterna med den angivna nyckeln från instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseRemoveAt(Int32) |
Tar bort posten vid det angivna indexet för instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseSet(Int32, Object) |
Anger värdet för posten vid det angivna indexet för instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| BaseSet(String, Object) |
Anger värdet för den första posten med den angivna nyckeln i instansen, om den NameObjectCollectionBase hittas. Annars lägger du till en post med den angivna nyckeln och värdet i instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| Clear() |
Ogiltigförklarar cachelagrade matriser och tar bort alla poster från NameValueCollection. |
| CopyTo(Array, Int32) |
Kopierar hela NameValueCollection till en kompatibel endimensionell Array, med början vid det angivna indexet för målmatrisen. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Get(Int32) |
Hämtar värdena vid det angivna indexet för den NameValueCollection kombinerade till en kommaavgränsad lista. |
| Get(String) |
Hämtar de värden som är associerade med den angivna nyckeln från den NameValueCollection kombinerade till en kommaavgränsad lista. |
| GetEnumerator() |
Returnerar en uppräkning som itererar genom NameObjectCollectionBase. (Ärvd från NameObjectCollectionBase) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetKey(Int32) |
Hämtar nyckeln vid det angivna indexet för NameValueCollection. |
| GetObjectData(SerializationInfo, StreamingContext) |
Implementerar ISerializable gränssnittet och returnerar de data som behövs för att serialisera instansen NameObjectCollectionBase . (Ärvd från NameObjectCollectionBase) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| GetValues(Int32) |
Hämtar värdena vid det angivna indexet för NameValueCollection. |
| GetValues(String) |
Hämtar de värden som är associerade med den angivna nyckeln från NameValueCollection. |
| HasKeys() |
Hämtar ett värde som anger om innehåller NameValueCollection nycklar som inte |
| InvalidateCachedArrays() |
Återställer cachelagrade matriser i samlingen till |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnDeserialization(Object) |
Implementerar ISerializable gränssnittet och höjer deserialiseringshändelsen när deserialiseringen är klar. (Ärvd från NameObjectCollectionBase) |
| Remove(String) |
Tar bort posterna med den angivna nyckeln från instansen NameObjectCollectionBase . |
| Set(String, String) |
Anger värdet för en post i NameValueCollection. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Kopierar hela NameObjectCollectionBase till en kompatibel endimensionell Array, med början vid det angivna indexet för målmatrisen. (Ärvd från NameObjectCollectionBase) |
| ICollection.IsSynchronized |
Hämtar ett värde som anger om åtkomsten NameObjectCollectionBase till objektet synkroniseras (trådsäker). (Ärvd från NameObjectCollectionBase) |
| ICollection.SyncRoot |
Hämtar ett objekt som kan användas för att synkronisera åtkomsten NameObjectCollectionBase till objektet. (Ärvd från NameObjectCollectionBase) |
Tilläggsmetoder
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Möjliggör parallellisering av en fråga. |
| AsQueryable(IEnumerable) |
Konverterar en IEnumerable till en IQueryable. |
| Cast<TResult>(IEnumerable) |
Omvandlar elementen i en IEnumerable till den angivna typen. |
| OfType<TResult>(IEnumerable) |
Filtrerar elementen i en IEnumerable baserat på en angiven typ. |
Gäller för
Trådsäkerhet
Offentliga statiska (Shared i Visual Basic) medlemmar av den här typen är trådsäkra. Vilka som helst instansmedlemmar garanteras inte att vara trådsäkra.
Den här implementeringen tillhandahåller ingen synkroniserad (trådsäker) omslutning för en NameValueCollection, men härledda klasser kan skapa sina egna synkroniserade versioner av NameValueCollection med hjälp SyncRoot av -egenskapen för NameObjectCollectionBase klassen.
Att räkna upp genom en samling är i sig inte en trådsäker procedur. Även när en samling synkroniseras kan andra trådar fortfarande ändra samlingen, vilket gör att uppräknaren genererar ett undantag. För att garantera trådsäkerheten under uppräkningen kan du antingen låsa samlingen under hela uppräkningen eller fånga undantagen från ändringar som gjorts av andra trådar.