NameValueCollection Sınıf

Tanım

Anahtarla veya dizinle erişilebilen ilişkili String anahtarlar ve String değerler koleksiyonunu temsil eder.

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
Devralma
NameValueCollection
Türetilmiş
Öznitelikler

Örnekler

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

Açıklamalar

Bu koleksiyon sınıfını NameObjectCollectionBase temel alır. Koleksiyonun her öğesi bir anahtar/değer çiftidir. Ancak, 'nin NameObjectCollectionBaseaksine, bu sınıf birden çok dize değerini tek bir anahtar altında depolayabilir.

Bu sınıf üst bilgiler, sorgu dizeleri ve form verileri için kullanılabilir.

Bu türdeki koleksiyonlar öğelerin sırasını korumaz ve koleksiyon numaralandırılırken belirli bir sıralama garantilanmaz.

'nin NameValueCollection kapasitesi, barındırabileceği öğelerin NameValueCollection sayısıdır. Öğeler eklendikçe, kapasite yeniden konumlandırma yoluyla gerektiği gibi otomatik olarak artırılır.

Karma kod sağlayıcısı içindeki anahtarlar NameValueCollectioniçin karma kodları dağıtır. Varsayılan karma kod sağlayıcısıdır CaseInsensitiveHashCodeProvider.

Karşılaştırıcı, iki anahtarın eşit olup olmadığını belirler. Varsayılan karşılaştırıcı, CaseInsensitiveComparer kurallarını kullanan bir değerdir; yani anahtar karşılaştırmaları varsayılan olarak büyük/küçük harfe duyarlı değildir. Büyük/küçük harfe duyarlı anahtar karşılaştırmaları gerçekleştirmek için oluşturucuyu çağırın NameValueCollection.NameValueCollection(IEqualityComparer) ve bağımsız değişken olarak StringComparer.CurrentCulture , StringComparer.InvariantCultureveya StringComparer.Ordinal değerini equalityComparersağlayın. Kültürün karşılaştırmaları ve sıralamayı nasıl etkilediği hakkında daha fazla bilgi için bkz. Culture-Insensitive Dize İşlemleri Gerçekleştirme.

null anahtar veya değer olarak izin verilir.

Caution

yöntemi, Get belirtilen anahtar bulunamadığından null ve anahtarla ilişkili değer olduğundan döndürülen değeri nullarasında null ayrım yapmaz.

Oluşturucular

Name Description
NameValueCollection()

Sınıfın NameValueCollection boş, varsayılan başlangıç kapasitesine sahip yeni bir örneğini başlatır ve varsayılan büyük/küçük harfe duyarlı olmayan karma kod sağlayıcısını ve varsayılan büyük/küçük harfe duyarlı olmayan karşılaştırıcıyı kullanır.

NameValueCollection(IEqualityComparer)

Sınıfın NameValueCollection boş, varsayılan başlangıç kapasitesine sahip yeni bir örneğini başlatır ve belirtilen IEqualityComparer nesneyi kullanır.

NameValueCollection(IHashCodeProvider, IComparer)
Geçersiz.
Geçersiz.

Sınıfın NameValueCollection boş, varsayılan başlangıç kapasitesine sahip yeni bir örneğini başlatır ve belirtilen karma kod sağlayıcısını ve belirtilen karşılaştırıcıyı kullanır.

NameValueCollection(Int32, IEqualityComparer)

Sınıfın NameValueCollection boş, belirtilen başlangıç kapasitesine sahip yeni bir örneğini başlatır ve belirtilen IEqualityComparer nesneyi kullanır.

NameValueCollection(Int32, IHashCodeProvider, IComparer)
Geçersiz.
Geçersiz.

Sınıfın NameValueCollection boş, belirtilen ilk kapasiteye sahip yeni bir örneğini başlatır ve belirtilen karma kod sağlayıcısını ve belirtilen karşılaştırıcıyı kullanır.

NameValueCollection(Int32, NameValueCollection)

Belirtilen girdileri belirtilen NameValueCollection ilk kapasiteye veya kopyalanan girdi sayısıyla aynı başlangıç kapasitesine (hangisi daha büyükse) ve varsayılan büyük/küçük harfe duyarlı olmayan karma kod sağlayıcısını ve varsayılan büyük/küçük harfe duyarlı olmayan karşılaştırıcıyı kullanarak yeni NameValueCollection bir girişe kopyalar.

NameValueCollection(Int32)

Sınıfın NameValueCollection boş, belirtilen ilk kapasiteye sahip yeni bir örneğini başlatır ve varsayılan büyük/küçük harfe duyarlı olmayan karma kod sağlayıcısını ve varsayılan büyük/küçük harfe duyarlı olmayan karşılaştırıcıyı kullanır.

NameValueCollection(NameValueCollection)

Belirtilen NameValueCollection girdileri, kopyalanan girdi sayısıyla aynı başlangıç kapasitesine sahip ve kaynak koleksiyonla aynı karma kod sağlayıcısını ve aynı karşılaştırıcıyı kullanan yeni NameValueCollection bir girişe kopyalar.

NameValueCollection(SerializationInfo, StreamingContext)
Geçersiz.

sınıfının serileştirilebilir yeni bir örneğini NameValueCollection başlatır ve belirtilen SerializationInfo ve StreamingContextkullanır.

Özellikler

Name Description
AllKeys

içindeki NameValueCollectiontüm anahtarları alır.

Count

Örnekte bulunan anahtar/değer çiftlerinin NameObjectCollectionBase sayısını alır.

(Devralındığı yer: NameObjectCollectionBase)
IsReadOnly

Örneğin salt okunur olup olmadığını NameObjectCollectionBase belirten bir değer alır veya ayarlar.

(Devralındığı yer: NameObjectCollectionBase)
Item[Int32]

girdisini belirtilen dizininde NameValueCollectionalır.

Item[String]

girdisini içinde belirtilen anahtarla NameValueCollectionalır veya ayarlar.

Keys

Örnekteki tüm anahtarları NameObjectCollectionBase.KeysCollection içeren bir NameObjectCollectionBase örneği alır.

(Devralındığı yer: NameObjectCollectionBase)

Yöntemler

Name Description
Add(NameValueCollection)

Belirtilen NameValueCollection içindeki girdileri geçerli NameValueCollectionöğesine kopyalar.

Add(String, String)

öğesine belirtilen ada ve değere NameValueCollectionsahip bir girdi ekler.

BaseAdd(String, Object)

Örneğe belirtilen anahtar ve değere NameObjectCollectionBase sahip bir girdi ekler.

(Devralındığı yer: NameObjectCollectionBase)
BaseClear()

Örnekteki NameObjectCollectionBase tüm girişleri kaldırır.

(Devralındığı yer: NameObjectCollectionBase)
BaseGet(Int32)

Örneğin belirtilen dizinindeki girdinin NameObjectCollectionBase değerini alır.

(Devralındığı yer: NameObjectCollectionBase)
BaseGet(String)

Örnekten belirtilen anahtara sahip ilk girdinin NameObjectCollectionBase değerini alır.

(Devralındığı yer: NameObjectCollectionBase)
BaseGetAllKeys()

Örnekteki tüm anahtarları String içeren bir NameObjectCollectionBase dizi döndürür.

(Devralındığı yer: NameObjectCollectionBase)
BaseGetAllValues()

Örnekteki tüm değerleri Object içeren bir NameObjectCollectionBase dizi döndürür.

(Devralındığı yer: NameObjectCollectionBase)
BaseGetAllValues(Type)

Örnekteki tüm değerleri NameObjectCollectionBase içeren belirtilen türde bir dizi döndürür.

(Devralındığı yer: NameObjectCollectionBase)
BaseGetKey(Int32)

Örneğin belirtilen dizininde girdinin NameObjectCollectionBase anahtarını alır.

(Devralındığı yer: NameObjectCollectionBase)
BaseHasKeys()

Örneğin anahtarları olmayan NameObjectCollectionBasegirdiler içerip içermediğini null belirten bir değer alır.

(Devralındığı yer: NameObjectCollectionBase)
BaseRemove(String)

Belirtilen anahtara sahip girişleri örnekten NameObjectCollectionBase kaldırır.

(Devralındığı yer: NameObjectCollectionBase)
BaseRemoveAt(Int32)

Örneğin belirtilen dizinindeki girdiyi NameObjectCollectionBase kaldırır.

(Devralındığı yer: NameObjectCollectionBase)
BaseSet(Int32, Object)

Girdinin değerini örneğin belirtilen dizininde NameObjectCollectionBase ayarlar.

(Devralındığı yer: NameObjectCollectionBase)
BaseSet(String, Object)

Örnekte belirtilen anahtarla NameObjectCollectionBase ilk girdinin değerini ayarlar; bulunursa, aksi takdirde örneğe belirtilen anahtar ve değere NameObjectCollectionBase sahip bir girdi ekler.

(Devralındığı yer: NameObjectCollectionBase)
Clear()

Önbelleğe alınan dizileri geçersiz kılır ve tüm girdileri öğesinden NameValueCollectionkaldırır.

CopyTo(Array, Int32)

Hedef dizinin belirtilen dizininden başlayarak tamamını NameValueCollection uyumlu bir tek boyutluya Arraykopyalar.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Get(Int32)

Birleştirilmiş öğesinin belirtilen dizinindeki NameValueCollection değerleri virgülle ayrılmış bir listede alır.

Get(String)

Belirtilen anahtarla NameValueCollection ilişkilendirilmiş değerleri virgülle ayrılmış bir listeden alır.

GetEnumerator()

aracılığıyla NameObjectCollectionBaseyineleyen bir numaralandırıcı döndürür.

(Devralındığı yer: NameObjectCollectionBase)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetKey(Int32)

anahtarını belirtilen dizininde NameValueCollectionalır.

GetObjectData(SerializationInfo, StreamingContext)
Geçersiz.

Arabirimini ISerializable uygular ve örneği serileştirmek NameObjectCollectionBase için gereken verileri döndürür.

(Devralındığı yer: NameObjectCollectionBase)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
GetValues(Int32)

belirtilen dizinindeki NameValueCollectiondeğerleri alır.

GetValues(String)

belirtilen anahtarla ilişkili değerleri içinden NameValueCollectionalır.

HasKeys()

olmayan anahtarların NameValueCollectionbulunup bulunmadığına null ilişkin bir değer alır.

InvalidateCachedArrays()

Koleksiyonun önbelleğe alınmış dizilerini olarak nullsıfırlar.

MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnDeserialization(Object)

Arabirimini ISerializable uygular ve seri durumdan çıkarma işlemi tamamlandığında seri durumdan çıkarma olayını başlatır.

(Devralındığı yer: NameObjectCollectionBase)
Remove(String)

Belirtilen anahtara sahip girişleri örnekten NameObjectCollectionBase kaldırır.

Set(String, String)

içindeki NameValueCollectionbir girdinin değerini ayarlar.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

Name Description
ICollection.CopyTo(Array, Int32)

Hedef dizinin belirtilen dizininden başlayarak tamamını NameObjectCollectionBase uyumlu bir tek boyutluya Arraykopyalar.

(Devralındığı yer: NameObjectCollectionBase)
ICollection.IsSynchronized

Nesneye erişimin NameObjectCollectionBase eşitlenip eşitlenmediğini belirten bir değer alır (iş parçacığı güvenli).

(Devralındığı yer: NameObjectCollectionBase)
ICollection.SyncRoot

Nesneye erişimi NameObjectCollectionBase eşitlemek için kullanılabilecek bir nesne alır.

(Devralındığı yer: NameObjectCollectionBase)

Uzantı Metotları

Name Description
AsParallel(IEnumerable)

Sorgunun paralelleştirilmesini etkinleştirir.

AsQueryable(IEnumerable)

bir IEnumerable öğesine IQueryabledönüştürür.

Cast<TResult>(IEnumerable)

öğesinin IEnumerable öğelerini belirtilen türe yazar.

OfType<TResult>(IEnumerable)

Belirtilen türe göre bir IEnumerable öğesinin öğelerini filtreler.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu türün genel statik (Shared Visual Basic'te) üyeleri iş parçacığı güvenlidir. Hiçbir örnek üyesi için iş parçacığı güvenliği garanti edilmez.

Bu uygulama, için NameValueCollectioneşitlenmiş (iş parçacığı güvenli) sarmalayıcı sağlamaz, ancak türetilmiş sınıflar sınıfının özelliğini NameValueCollection kullanarak SyncRoot kendi eşitlenmiş sürümlerini NameObjectCollectionBase oluşturabilir.

Bir koleksiyonda numaralandırma, iş parçacığı güvenli bir yordam değildir. Bir koleksiyon eşitlendiğinde bile, diğer iş parçacıkları yine de koleksiyonu değiştirebilir ve bu da numaralandırıcının bir özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.

Ayrıca bkz.