NameValueCollection Klass

Definition

Representerar en samling associerade String nycklar och String värden som kan nås antingen med nyckeln eller med indexet.

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
NameValueCollection
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 nullär .

(Ärvd från NameObjectCollectionBase)
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 nullär .

InvalidateCachedArrays()

Återställer cachelagrade matriser i samlingen till null.

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.

Se även