SortedList Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 each
Visual 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.