SortedList Sınıf

Tanım

Anahtarlara göre sıralanmış, anahtara ve dizine göre erişilebilen bir anahtar/değer çiftleri koleksiyonunu temsil eder.

public ref class SortedList : System::Collections::IDictionary
public ref class SortedList : ICloneable, System::Collections::IDictionary
public class SortedList : System.Collections.IDictionary
public class SortedList : ICloneable, System.Collections.IDictionary
[System.Serializable]
public class SortedList : ICloneable, System.Collections.IDictionary
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class SortedList : ICloneable, System.Collections.IDictionary
type SortedList = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
type SortedList = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICloneable
[<System.Serializable>]
type SortedList = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ICloneable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type SortedList = class
    interface IDictionary
    interface ICollection
    interface IEnumerable
    interface ICloneable
Public Class SortedList
Implements IDictionary
Public Class SortedList
Implements ICloneable, IDictionary
Devralma
SortedList
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki kod örneği, bir SortedList nesnenin nasıl oluşturulup başlatılacağını ve nesnenin anahtarlarının ve değerlerinin nasıl yazdırılacağını gösterir.

#using <system.dll>

using namespace System;
using namespace System::Collections;
public ref class SamplesSortedList
{
public:
   static void PrintKeysAndValues( SortedList^ myList )
   {
      Console::WriteLine( "\t-KEY-\t-VALUE-" );
      for ( int i = 0; i < myList->Count; i++ )
      {
         Console::WriteLine( "\t{0}:\t{1}", myList->GetKey( i ), myList->GetByIndex( i ) );

      }
      Console::WriteLine();
   }

};

int main()
{

   // Creates and initializes a new SortedList.
   SortedList^ mySL = gcnew SortedList;
   mySL->Add( "Third", "!" );
   mySL->Add( "Second", "World" );
   mySL->Add( "First", "Hello" );

   // Displays the properties and values of the SortedList.
   Console::WriteLine( "mySL" );
   Console::WriteLine( "  Count:    {0}", mySL->Count );
   Console::WriteLine( "  Capacity: {0}", mySL->Capacity );
   Console::WriteLine( "  Keys and Values:" );
   SamplesSortedList::PrintKeysAndValues( mySL );
}

/*
This code produces the following output.

mySL
Count:    3
Capacity: 16
Keys and Values:
-KEY-    -VALUE-
First:    Hello
Second:    World
Third:    !
*/
using System;
using System.Collections;

public class SamplesSortedList2
{
    public static void Main()
    {
        // Creates and initializes a new SortedList.
        SortedList mySL = new SortedList();
        mySL.Add("Third", "!");
        mySL.Add("Second", "World");
        mySL.Add("First", "Hello");

        // Displays the properties and values of the SortedList.
        Console.WriteLine("mySL");
        Console.WriteLine("  Count:    {0}", mySL.Count);
        Console.WriteLine("  Capacity: {0}", mySL.Capacity);
        Console.WriteLine("  Keys and Values:");
        PrintKeysAndValues(mySL);
    }

    public static void PrintKeysAndValues(SortedList myList)
    {
        Console.WriteLine("\t-KEY-\t-VALUE-");
        for (int i = 0; i < myList.Count; i++)
        {
            Console.WriteLine("\t{0}:\t{1}", myList.GetKey(i), myList.GetByIndex(i));
        }
        Console.WriteLine();
    }
}
/*
This code produces the following output.

mySL
  Count:    3
  Capacity: 16
  Keys and Values:
    -KEY-    -VALUE-
    First:    Hello
    Second:    World
    Third:    !
*/
Imports System.Collections

Public Class SamplesSortedList    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new SortedList.
        Dim mySL As New SortedList()
        mySL.Add("Third", "!")
        mySL.Add("Second", "World")
        mySL.Add("First", "Hello")
        
        ' Displays the properties and values of the SortedList.
        Console.WriteLine("mySL")
        Console.WriteLine("  Count:    {0}", mySL.Count)
        Console.WriteLine("  Capacity: {0}", mySL.Capacity)
        Console.WriteLine("  Keys and Values:")
        PrintKeysAndValues(mySL)
    End Sub
    
    Public Shared Sub PrintKeysAndValues(myList As SortedList)
        Console.WriteLine(ControlChars.Tab & "-KEY-" & ControlChars.Tab & _
           "-VALUE-")
        Dim i As Integer
        For i = 0 To myList.Count - 1
            Console.WriteLine(ControlChars.Tab & "{0}:" & ControlChars.Tab & _
               "{1}", myList.GetKey(i), myList.GetByIndex(i))
        Next i
        Console.WriteLine()
    End Sub
End Class

' This code produces the following output.
' 
' mySL
'   Count:    3
'   Capacity: 16
'   Keys and Values:
'     -KEY-     -VALUE-
'     First:    Hello
'     Second:   World
'     Third:    !

Açıklamalar

Bir SortedList öğeye herhangi bir uygulamadaki bir öğe gibi anahtarı veya herhangi IDictionary bir uygulamadaki IList bir öğe gibi dizini tarafından erişilebilir.

Önemli

sınıfını SortedList yeni geliştirme için kullanmanızı önermiyoruz. Bunun yerine, genel System.Collections.Generic.SortedList<TKey,TValue> sınıfı kullanmanızı öneririz. Daha fazla bilgi için bkz. GitHub'da genel olmayan koleksiyonlar kullanılmamalıdır .

Bir SortedList nesne, listenin öğelerini depolamak için dahili olarak iki dizi tutar; yani, anahtarlar için bir dizi ve ilişkili değerler için başka bir dizi. Her öğe, nesne olarak erişilebilen bir DictionaryEntry anahtar/değer çiftidir. Anahtar olamaz null, ancak bir değer olabilir.

Bir SortedList nesnenin kapasitesi, barındırabileceği öğelerin SortedList sayısıdır. öğesine öğe eklendikçe SortedList, kapasite yeniden konumlandırma yoluyla gerektiği gibi otomatik olarak artırılır. Çağrılarak TrimToSize veya özelliği açıkça ayarlanarak Capacity kapasite azaltılabilir.

Yalnızca .NET Framework: Çok büyük SortedList nesneler için, çalışma zamanı ortamında yapılandırma öğesinin özniteliğini <gcAllowVeryLargeObjects> olarak ayarlayarak enabled 64 bitlik bir sistemde maksimum kapasiteyi 2 milyar öğeye true çıkarabilirsiniz.

Bir SortedList nesnenin öğeleri, anahtarlara göre oluşturulurken SortedList belirtilen belirli IComparer bir uygulamaya göre veya anahtarların IComparable kendisi tarafından sağlanan uygulamaya göre sıralanır. Her iki durumda da , SortedList yinelenen anahtarlara izin vermez.

Dizin dizisi sıralama dizisini temel alır. Bir öğe eklendiğinde, öğesine doğru sıralama düzeninde eklenir SortedList ve dizinleme buna göre ayarlanır. Bir öğe kaldırıldığında, dizinleme de buna göre ayarlanır. Bu nedenle, öğeler nesneye eklendikçe veya nesneden kaldırıldıkçe belirli bir anahtar/değer çiftinin SortedList dizini değişebilir.

Bir nesnedeki SortedList işlemler, sıralama nedeniyle nesnedeki Hashtable işlemlerden daha yavaş olma eğilimindedir. Ancak, SortedList ilişkili anahtarlar veya dizinler aracılığıyla değerlere erişime izin vererek daha fazla esneklik sunar.

Bu koleksiyondaki öğelere tamsayı dizini kullanılarak erişilebilir. Bu koleksiyondaki dizinler sıfır tabanlıdır.

foreach C# dilinin deyimi (for eachVisual Basic'te) koleksiyondaki öğelerin türünde bir nesne döndürür. Nesnenin SortedList her öğesi bir anahtar/değer çifti olduğundan, öğe türü anahtarın türü veya değerin türü değildir. Bunun yerine, öğe türü şeklindedir DictionaryEntry. Örnek:

for each (DictionaryEntry de in mySortedList)
{
    //...
}
foreach (DictionaryEntry de in mySortedList)
{
    //...
}
For Each de As DictionaryEntry In mySortedList
    '...
Next de

deyimi foreach , numaralandırıcının çevresindeki bir sarmalayıcıdır ve koleksiyona yazmadan yalnızca buradan okumaya izin verir.

Oluşturucular

SortedList()

Boş olan, varsayılan başlangıç kapasitesine sahip olan ve nesneye eklenen her anahtar tarafından uygulanan arabirime IComparable göre sıralanan sınıfın yeni bir örneğini SortedListSortedList başlatır.

SortedList(IComparer)

Sınıfın SortedList boş, varsayılan başlangıç kapasitesine sahip ve belirtilen IComparer arabirime göre sıralanmış yeni bir örneğini başlatır.

SortedList(IComparer, Int32)

Sınıfın SortedList boş, belirtilen başlangıç kapasitesine sahip ve belirtilen IComparer arabirime göre sıralanmış yeni bir örneğini başlatır.

SortedList(IDictionary)

Belirtilen sözlükten kopyalanan öğeleri içeren sınıfının yeni bir örneğini SortedList başlatır, kopyalanan öğelerin sayısıyla aynı başlangıç kapasitesine sahiptir ve her anahtar tarafından uygulanan arabirime IComparable göre sıralanır.

SortedList(IDictionary, IComparer)

Belirtilen sözlükten kopyalanan öğeleri içeren sınıfının yeni bir örneğini SortedList başlatır, kopyalanan öğe sayısıyla aynı başlangıç kapasitesine sahiptir ve belirtilen IComparer arabirime göre sıralanır.

SortedList(Int32)

Boş olan, belirtilen başlangıç kapasitesine sahip olan ve nesneye eklenen her anahtar tarafından uygulanan arabirime IComparable göre sıralanan yeni bir sınıf örneğini SortedListSortedList başlatır.

Özellikler

Capacity

Bir SortedList nesnenin kapasitesini alır veya ayarlar.

Count

Bir SortedList nesnede bulunan öğelerin sayısını alır.

IsFixedSize

Bir SortedList nesnenin sabit bir boyuta sahip olup olmadığını belirten bir değer alır.

IsReadOnly

Bir nesnenin salt okunur olup olmadığını belirten bir SortedList değer alır.

IsSynchronized

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

Item[Object]

Nesnedeki belirli bir anahtarla SortedList ilişkili değeri alır veya ayarlar.

Keys

Nesnedeki SortedList anahtarları alır.

SyncRoot

Bir nesneye erişimi eşitlemek için kullanılabilecek bir SortedList nesne alır.

Values

Bir SortedList nesnedeki değerleri alır.

Yöntemler

Add(Object, Object)

Bir nesneye belirtilen anahtar ve değere sahip bir SortedList öğe ekler.

Clear()

Nesneden SortedList tüm öğeleri kaldırır.

Clone()

Nesnenin sığ bir SortedList kopyasını oluşturur.

Contains(Object)

Bir nesnenin belirli bir SortedList anahtar içerip içermediğini belirler.

ContainsKey(Object)

Bir nesnenin belirli bir SortedList anahtar içerip içermediğini belirler.

ContainsValue(Object)

Bir nesnenin belirli bir SortedList değer içerip içermediğini belirler.

CopyTo(Array, Int32)

SortedList Dizideki belirtilen dizinden başlayarak öğeleri tek boyutlu Array bir nesneye kopyalar.

Equals(Object)

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

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

Bir SortedList nesnenin belirtilen dizinindeki değeri alır.

GetEnumerator()

Bir IDictionaryEnumerator nesne üzerinden yineleyen bir SortedList nesne döndürür.

GetHashCode()

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

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

Anahtarı bir SortedList nesnenin belirtilen dizininde alır.

GetKeyList()

Nesnedeki SortedList anahtarları alır.

GetType()

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

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

Bir SortedList nesnedeki değerleri alır.

IndexOfKey(Object)

Bir SortedList nesnede belirtilen anahtarın sıfır tabanlı dizinini döndürür.

IndexOfValue(Object)

Bir SortedList nesnede belirtilen değerin ilk oluşumunun sıfır tabanlı dizinini döndürür.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

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

Belirtilen anahtara sahip öğeyi bir SortedList nesneden kaldırır.

RemoveAt(Int32)

Bir SortedList nesnenin belirtilen dizinindeki öğesini kaldırır.

SetByIndex(Int32, Object)

Nesnedeki belirli bir dizindeki SortedList değeri değiştirir.

Synchronized(SortedList)

Bir nesne için eşitlenmiş (iş parçacığı güvenli) sarmalayıcı SortedList döndürür.

ToString()

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

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

Kapasiteyi nesnedeki SortedList gerçek öğe sayısına ayarlar.

Belirtik Arabirim Kullanımları

IEnumerable.GetEnumerator()

aracılığıyla SortedListyineleyen bir IEnumerator döndürür.

Uzantı Metotları

Cast<TResult>(IEnumerable)

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

OfType<TResult>(IEnumerable)

Öğesinin IEnumerable öğelerini belirtilen türe göre filtreler.

AsParallel(IEnumerable)

Sorgunun paralelleştirilmesini etkinleştirir.

AsQueryable(IEnumerable)

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

Şunlara uygulanır

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

Bu türün genel statik (Shared Visual Basic'te) üyeleri iş parçacığı güvenlidir. Örnek üyelerin iş parçacığı güvenli olmaları garanti edilmez.

Koleksiyon SortedList değiştirilmediği sürece bir nesne aynı anda birden çok okuyucuyu destekleyebilir. öğesinin iş parçacığı güvenliğini SortedListgaranti etmek için tüm işlemlerin yöntemi tarafından Synchronized(SortedList) döndürülen sarmalayıcı aracılığıyla yapılması gerekir.

Bir koleksiyon ile numaralandırma, aslında iş parçacığı açısından güvenli yordam değildir. Bir koleksiyon eşitlendiği zaman bile, diğer iş parçacıkları numaralandırıcının özel durum oluşturmasına neden olan koleksiyonu değiştirebilir. Numaralandırma sırasında iş parçacığı güvenliği sağlamak 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.