SortedList Kelas

Definisi

Mewakili kumpulan pasangan kunci/nilai yang diurutkan berdasarkan kunci dan dapat diakses oleh kunci dan menurut indeks.

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
Warisan
SortedList
Atribut
Penerapan

Contoh

Contoh kode berikut menunjukkan cara membuat dan menginisialisasi SortedList objek dan cara mencetak kunci dan nilainya.

#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:    !

Keterangan

SortedList Elemen dapat diakses oleh kuncinya, seperti elemen dalam implementasi apa punIDictionary, atau oleh indeksnya, seperti elemen dalam implementasi apa punIList.

Penting

Kami tidak menyarankan Anda menggunakan SortedList kelas untuk pengembangan baru. Sebagai gantinya, kami sarankan Anda menggunakan kelas generik System.Collections.Generic.SortedList<TKey,TValue> . Untuk informasi selengkapnya, lihat Koleksi non-generik tidak boleh digunakan di GitHub.

Objek SortedList secara internal mempertahankan dua array untuk menyimpan elemen daftar; yaitu, satu array untuk kunci dan array lain untuk nilai terkait. Setiap elemen adalah pasangan kunci/nilai yang dapat diakses sebagai DictionaryEntry objek. Kunci tidak boleh null, tetapi nilainya bisa.

Kapasitas SortedList objek adalah jumlah elemen yang dapat ditahan SortedList . Karena elemen ditambahkan ke SortedList, kapasitas secara otomatis ditingkatkan sesuai kebutuhan melalui realokasi. Kapasitas dapat dikurangi dengan memanggil TrimToSize atau dengan mengatur Capacity properti secara eksplisit.

hanya .NET Framework: Untuk objek yang sangat besarSortedList, Anda dapat meningkatkan kapasitas maksimum menjadi 2 miliar elemen pada sistem 64-bit dengan mengatur enabled atribut <gcAllowVeryLargeObjects> elemen konfigurasi ke true di lingkungan run-time.

Elemen SortedList objek diurutkan berdasarkan kunci baik sesuai dengan implementasi tertentu IComparer yang ditentukan ketika SortedList dibuat atau sesuai dengan IComparable implementasi yang disediakan oleh kunci itu sendiri. Dalam kedua kasus, SortedList tidak mengizinkan kunci duplikat.

Urutan indeks didasarkan pada urutan pengurutan. Saat elemen ditambahkan, elemen disisipkan ke SortedList dalam urutan pengurutan yang benar, dan pengindeksan menyesuaikannya. Saat elemen dihapus, pengindeksan juga menyesuaikannya. Oleh karena itu, indeks pasangan kunci/nilai tertentu mungkin berubah saat elemen ditambahkan atau dihapus dari SortedList objek .

Operasi pada SortedList objek cenderung lebih lambat daripada operasi pada Hashtable objek karena pengurutan. Namun, menawarkan lebih banyak SortedList fleksibilitas dengan memungkinkan akses ke nilai baik melalui kunci terkait atau melalui indeks.

Elemen dalam koleksi ini dapat diakses menggunakan indeks bilangan bulat. Indeks dalam koleksi ini berbasis nol.

Pernyataan foreach bahasa C# (for each dalam Visual Basic) mengembalikan objek dari jenis elemen dalam koleksi. Karena setiap elemen SortedList objek adalah pasangan kunci/nilai, jenis elemen bukan jenis kunci atau jenis nilai. Sebaliknya, jenis elemennya adalah DictionaryEntry. Contohnya:

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

Pernyataan tersebut foreach adalah pembungkus di sekitar enumerator, yang hanya memungkinkan membaca dari, tidak menulis ke, koleksi.

Konstruktor

SortedList()

Menginisialisasi instans SortedList baru kelas yang kosong, memiliki kapasitas awal default, dan diurutkan sesuai dengan antarmuka yang IComparable diimplementasikan oleh setiap kunci yang ditambahkan ke SortedList objek.

SortedList(IComparer)

Menginisialisasi instans SortedList baru kelas yang kosong, memiliki kapasitas awal default, dan diurutkan sesuai dengan antarmuka yang ditentukan IComparer .

SortedList(IComparer, Int32)

Menginisialisasi instans SortedList baru kelas yang kosong, memiliki kapasitas awal yang ditentukan, dan diurutkan sesuai dengan antarmuka yang ditentukan IComparer .

SortedList(IDictionary)

Menginisialisasi instans SortedList baru kelas yang berisi elemen yang disalin dari kamus yang ditentukan, memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin, dan diurutkan sesuai dengan antarmuka yang IComparable diterapkan oleh setiap kunci.

SortedList(IDictionary, IComparer)

Menginisialisasi instans SortedList baru kelas yang berisi elemen yang disalin dari kamus yang ditentukan, memiliki kapasitas awal yang sama dengan jumlah elemen yang disalin, dan diurutkan sesuai dengan antarmuka yang ditentukan IComparer .

SortedList(Int32)

Menginisialisasi instans SortedList baru kelas yang kosong, memiliki kapasitas awal yang ditentukan, dan diurutkan sesuai dengan antarmuka yang IComparable diimplementasikan oleh setiap kunci yang ditambahkan ke SortedList objek.

Properti

Capacity

Mendapatkan atau mengatur kapasitas SortedList objek.

Count

Mendapatkan jumlah elemen yang terkandung dalam objek SortedList .

IsFixedSize

Mendapatkan nilai yang menunjukkan apakah SortedList objek memiliki ukuran tetap.

IsReadOnly

Mendapatkan nilai yang menunjukkan apakah objek bersifat SortedList baca-saja.

IsSynchronized

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

Item[Object]

Mendapatkan atau mengatur nilai yang terkait dengan kunci tertentu dalam SortedList objek.

Keys

Mendapatkan kunci dalam SortedList objek.

SyncRoot

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

Values

Mendapatkan nilai dalam SortedList objek.

Metode

Add(Object, Object)

Menambahkan elemen dengan kunci dan nilai yang ditentukan ke SortedList objek.

Clear()

Menghapus semua elemen dari SortedList objek.

Clone()

Membuat salinan objek yang SortedList dangkal.

Contains(Object)

Menentukan apakah SortedList objek berisi kunci tertentu.

ContainsKey(Object)

Menentukan apakah SortedList objek berisi kunci tertentu.

ContainsValue(Object)

Menentukan apakah SortedList objek berisi nilai tertentu.

CopyTo(Array, Int32)

SortedList Menyalin elemen ke objek satu dimensiArray, dimulai dari indeks yang ditentukan dalam array.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetByIndex(Int32)

Mendapatkan nilai pada indeks objek yang SortedList ditentukan.

GetEnumerator()

Mengembalikan IDictionaryEnumerator objek yang berulang melalui SortedList objek.

GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetKey(Int32)

Mendapatkan kunci pada indeks objek yang SortedList ditentukan.

GetKeyList()

Mendapatkan kunci dalam SortedList objek.

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
GetValueList()

Mendapatkan nilai dalam SortedList objek.

IndexOfKey(Object)

Mengembalikan indeks berbasis nol dari kunci yang ditentukan dalam SortedList objek.

IndexOfValue(Object)

Mengembalikan indeks berbasis nol dari kemunculan pertama nilai yang ditentukan dalam objek SortedList .

MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
Remove(Object)

Menghapus elemen dengan kunci yang ditentukan dari SortedList objek.

RemoveAt(Int32)

Menghapus elemen pada indeks objek yang SortedList ditentukan.

SetByIndex(Int32, Object)

Menggantikan nilai pada indeks tertentu dalam SortedList objek.

Synchronized(SortedList)

Mengembalikan pembungkus yang disinkronkan (aman utas) untuk SortedList objek.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
TrimToSize()

Mengatur kapasitas ke jumlah elemen aktual dalam objek SortedList .

Implementasi Antarmuka Eksplisit

IEnumerable.GetEnumerator()

Mengembalikan IEnumerator yang berulang melalui SortedList.

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.

Objek SortedList dapat mendukung beberapa pembaca secara bersamaan, selama koleksi tidak dimodifikasi. Untuk menjamin keamanan SortedListutas , semua operasi harus dilakukan melalui pembungkus yang dikembalikan oleh Synchronized(SortedList) metode .

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