NameValueCollection Kelas

Definisi

Mewakili kumpulan kunci dan String nilai terkait String yang dapat diakses baik dengan kunci atau dengan indeks.

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
Warisan
NameValueCollection
Turunan
Atribut

Contoh

#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
'
'

Keterangan

Koleksi ini didasarkan pada NameObjectCollectionBase kelas . Setiap elemen koleksi adalah pasangan kunci/nilai. Namun, tidak seperti NameObjectCollectionBase, kelas ini dapat menyimpan beberapa nilai string di bawah satu kunci.

Kelas ini dapat digunakan untuk header, string kueri, dan data formulir.

Koleksi jenis ini tidak mempertahankan urutan elemen, dan tidak ada urutan tertentu yang dijamin saat menghitung koleksi.

Kapasitas a NameValueCollection adalah jumlah elemen yang dapat ditahan NameValueCollection . Saat elemen ditambahkan, kapasitasnya secara otomatis ditingkatkan sesuai kebutuhan melalui realokasi.

Penyedia kode hash mengeluarkan kode hash untuk kunci di NameValueCollection. Penyedia kode hash default adalah CaseInsensitiveHashCodeProvider.

Pembanding menentukan apakah dua kunci sama. Pembanding default adalah CaseInsensitiveComparer yang menggunakan konvensi budaya invarian; yaitu, perbandingan kunci tidak peka huruf besar/kecil secara default. Untuk melakukan perbandingan kunci peka huruf besar/kecil, panggil NameValueCollection.NameValueCollection(IEqualityComparer) konstruktor, dan berikan nilai StringComparer.CurrentCulture, StringComparer.InvariantCulture, atau StringComparer.Ordinal sebagai equalityComparer argumen . Untuk informasi selengkapnya tentang bagaimana budaya memengaruhi perbandingan dan pengurutan, lihat Melakukan Operasi String Culture-Insensitive.

null diizinkan sebagai kunci atau sebagai nilai.

Perhatian

Metode Get ini tidak membedakan antara null yang dikembalikan karena kunci yang ditentukan tidak ditemukan dan null yang dikembalikan karena nilai yang terkait dengan kunci adalah null.

Konstruktor

NameValueCollection()

Menginisialisasi instans baru kelas NameValueCollection yang kosong, memiliki kapasitas awal default dan menggunakan penyedia kode hash default yang tidak peka huruf besar/kecil dan pembanding tidak peka huruf besar/kecil default.

NameValueCollection(IEqualityComparer)

Menginisialisasi instans NameValueCollection baru kelas yang kosong, memiliki kapasitas awal default, dan menggunakan objek yang ditentukan IEqualityComparer .

NameValueCollection(IHashCodeProvider, IComparer)
Kedaluwarsa.
Kedaluwarsa.

Menginisialisasi instans NameValueCollection baru kelas yang kosong, memiliki kapasitas awal default dan menggunakan penyedia kode hash yang ditentukan dan perbandingan yang ditentukan.

NameValueCollection(Int32)

Menginisialisasi instans NameValueCollection baru kelas yang kosong, memiliki kapasitas awal yang ditentukan dan menggunakan penyedia kode hash tidak sensitif huruf besar/kecil default dan pembanding tidak peka huruf besar/kecil default.

NameValueCollection(Int32, IEqualityComparer)

Menginisialisasi instans baru kelas NameValueCollection yang kosong, memiliki kapasitas awal yang ditentukan, dan menggunakan objek yang ditentukan IEqualityComparer .

NameValueCollection(Int32, IHashCodeProvider, IComparer)
Kedaluwarsa.
Kedaluwarsa.

Menginisialisasi instans NameValueCollection baru kelas yang kosong, memiliki kapasitas awal yang ditentukan dan menggunakan penyedia kode hash yang ditentukan dan pembanding yang ditentukan.

NameValueCollection(Int32, NameValueCollection)

Menyalin entri dari yang ditentukan NameValueCollection ke yang baru NameValueCollection dengan kapasitas awal yang ditentukan atau kapasitas awal yang sama dengan jumlah entri yang disalin, mana pun yang lebih besar, dan menggunakan penyedia kode hash default yang tidak peka huruf besar/kecil dan pembanding tidak sensitif huruf besar/kecil default.

NameValueCollection(NameValueCollection)

Menyalin entri dari yang ditentukan ke yang baru NameValueCollection dengan kapasitas awal yang sama dengan jumlah entri yang disalin dan menggunakan penyedia kode hash yang sama dan perbandingan NameValueCollection yang sama dengan koleksi sumber.

NameValueCollection(SerializationInfo, StreamingContext)
Kedaluwarsa.

Menginisialisasi instans baru kelas NameValueCollection yang dapat diserialisasikan dan menggunakan dan StreamingContextyang ditentukanSerializationInfo.

Properti

AllKeys

Mendapatkan semua kunci di NameValueCollection.

Count

Mendapatkan jumlah pasangan kunci/nilai yang terkandung dalam NameObjectCollectionBase instans.

(Diperoleh dari NameObjectCollectionBase)
IsReadOnly

Mendapatkan atau menetapkan nilai yang menunjukkan apakah NameObjectCollectionBase instans bersifat baca-saja.

(Diperoleh dari NameObjectCollectionBase)
Item[Int32]

Mendapatkan entri pada indeks yang ditentukan dari NameValueCollection.

Item[String]

Mendapatkan atau mengatur entri dengan kunci yang ditentukan di NameValueCollection.

Keys

Mendapatkan instans NameObjectCollectionBase.KeysCollection yang berisi semua kunci dalam NameObjectCollectionBase instans.

(Diperoleh dari NameObjectCollectionBase)

Metode

Add(NameValueCollection)

Menyalin entri dalam yang ditentukan NameValueCollection ke saat ini NameValueCollection.

Add(String, String)

Menambahkan entri dengan nama dan nilai yang ditentukan ke NameValueCollection.

BaseAdd(String, Object)

Menambahkan entri dengan kunci dan nilai yang ditentukan ke NameObjectCollectionBase dalam instans.

(Diperoleh dari NameObjectCollectionBase)
BaseClear()

Menghapus semua entri dari NameObjectCollectionBase instans.

(Diperoleh dari NameObjectCollectionBase)
BaseGet(Int32)

Mendapatkan nilai entri pada indeks NameObjectCollectionBase instans yang ditentukan.

(Diperoleh dari NameObjectCollectionBase)
BaseGet(String)

Mendapatkan nilai entri pertama dengan kunci yang ditentukan dari NameObjectCollectionBase instans.

(Diperoleh dari NameObjectCollectionBase)
BaseGetAllKeys()

Mengembalikan String array yang berisi semua kunci dalam NameObjectCollectionBase instans.

(Diperoleh dari NameObjectCollectionBase)
BaseGetAllValues()

Mengembalikan Object array yang berisi semua nilai dalam NameObjectCollectionBase instans.

(Diperoleh dari NameObjectCollectionBase)
BaseGetAllValues(Type)

Mengembalikan array dari jenis yang ditentukan yang berisi semua nilai dalam NameObjectCollectionBase instans.

(Diperoleh dari NameObjectCollectionBase)
BaseGetKey(Int32)

Mendapatkan kunci entri pada indeks NameObjectCollectionBase instans yang ditentukan.

(Diperoleh dari NameObjectCollectionBase)
BaseHasKeys()

Mendapatkan nilai yang menunjukkan apakah NameObjectCollectionBase instans berisi entri yang kuncinya bukan null.

(Diperoleh dari NameObjectCollectionBase)
BaseRemove(String)

Menghapus entri dengan kunci yang ditentukan dari NameObjectCollectionBase instans.

(Diperoleh dari NameObjectCollectionBase)
BaseRemoveAt(Int32)

Menghapus entri pada indeks NameObjectCollectionBase instans yang ditentukan.

(Diperoleh dari NameObjectCollectionBase)
BaseSet(Int32, Object)

Mengatur nilai entri pada indeks NameObjectCollectionBase instans yang ditentukan.

(Diperoleh dari NameObjectCollectionBase)
BaseSet(String, Object)

Mengatur nilai entri pertama dengan kunci yang ditentukan dalam NameObjectCollectionBase instans, jika ditemukan; jika tidak, menambahkan entri dengan kunci dan nilai yang ditentukan ke NameObjectCollectionBase dalam instans.

(Diperoleh dari NameObjectCollectionBase)
Clear()

Membatalkan array yang di-cache dan menghapus semua entri dari NameValueCollection.

CopyTo(Array, Int32)

Menyalin seluruh NameValueCollection ke satu dimensi Arrayyang kompatibel, dimulai dari indeks array target yang ditentukan.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
Get(Int32)

Mendapatkan nilai pada indeks yang ditentukan dari NameValueCollection gabungan ke dalam satu daftar yang dipisahkan koma.

Get(String)

Mendapatkan nilai yang terkait dengan kunci yang ditentukan dari NameValueCollection gabungan menjadi satu daftar yang dipisahkan koma.

GetEnumerator()

Mengembalikan enumerator yang berulang melalui NameObjectCollectionBase.

(Diperoleh dari NameObjectCollectionBase)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetKey(Int32)

Mendapatkan kunci pada indeks yang ditentukan dari NameValueCollection.

GetObjectData(SerializationInfo, StreamingContext)
Kedaluwarsa.

ISerializable Mengimplementasikan antarmuka dan mengembalikan data yang diperlukan untuk membuat serialisasi NameObjectCollectionBase instans.

(Diperoleh dari NameObjectCollectionBase)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
GetValues(Int32)

Mendapatkan nilai pada indeks yang ditentukan dari NameValueCollection.

GetValues(String)

Mendapatkan nilai yang terkait dengan kunci yang ditentukan dari NameValueCollection.

HasKeys()

Mendapatkan nilai yang menunjukkan apakah NameValueCollection berisi kunci yang bukan null.

InvalidateCachedArrays()

Mengatur ulang array koleksi yang di-cache ke null.

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnDeserialization(Object)

ISerializable Mengimplementasikan antarmuka dan meningkatkan peristiwa deserialisasi saat deserialisasi selesai.

(Diperoleh dari NameObjectCollectionBase)
Remove(String)

Menghapus entri dengan kunci yang ditentukan dari NameObjectCollectionBase instans.

Set(String, String)

Mengatur nilai entri di NameValueCollection.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

ICollection.CopyTo(Array, Int32)

Menyalin seluruh NameObjectCollectionBase ke satu dimensi Arrayyang kompatibel, dimulai dari indeks array target yang ditentukan.

(Diperoleh dari NameObjectCollectionBase)
ICollection.IsSynchronized

Mendapatkan nilai yang menunjukkan apakah akses ke objek disinkronkan NameObjectCollectionBase (utas aman).

(Diperoleh dari NameObjectCollectionBase)
ICollection.SyncRoot

Mendapatkan objek yang dapat digunakan untuk menyinkronkan akses ke NameObjectCollectionBase objek.

(Diperoleh dari NameObjectCollectionBase)

Metode Ekstensi

Cast<TResult>(IEnumerable)

Mentransmisikan elemen dari ke IEnumerable jenis yang ditentukan.

OfType<TResult>(IEnumerable)

Memfilter elemen berdasarkan IEnumerable jenis yang ditentukan.

AsParallel(IEnumerable)

Mengaktifkan paralelisasi kueri.

AsQueryable(IEnumerable)

Mengonversi menjadi IEnumerableIQueryable.

Berlaku untuk

Keamanan Thread

Anggota statis publik (Shared dalam Visual Basic) jenis ini aman untuk utas. Setiap anggota instans tidak dijamin aman untuk utas.

Implementasi ini tidak menyediakan pembungkus yang disinkronkan (aman utas) untuk NameValueCollection, tetapi kelas turunan dapat membuat versi yang disinkronkan sendiri dari NameValueCollection menggunakan SyncRoot properti NameObjectCollectionBase kelas .

Menghitung melalui koleksi secara intrinsik bukan prosedur aman utas. Bahkan ketika koleksi disinkronkan, utas lain masih dapat memodifikasi koleksi, yang menyebabkan enumerator melemparkan pengecualian. Untuk menjamin keamanan utas selama enumerasi, Anda dapat mengunci koleksi selama seluruh enumerasi atau menangkap pengecualian yang dihasilkan dari perubahan yang dibuat oleh utas lain.

Lihat juga