SortedList Osztály

Definíció

Kulcs/érték párok gyűjteményét jelöli, amelyek a kulcsok szerint vannak rendezve, és kulcs és index alapján érhetők el.

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
Öröklődés
SortedList
Attribútumok
Megvalósítás

Példák

Az alábbi példakód bemutatja, hogyan hozhat létre és inicializálhat objektumokat SortedList , és hogyan nyomtathatja ki a kulcsait és értékeit.

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

Megjegyzések

Az SortedList elemek a kulcsukkal, például bármely IDictionary implementáció elemével vagy indexével érhetők el, mint bármely IList implementáció egy eleme.

Important

Nem javasoljuk, hogy az osztályt SortedList új fejlesztéshez használja. Ehelyett azt javasoljuk, hogy az általános System.Collections.Generic.SortedList<TKey,TValue> osztályt használja. További információ: Non-generic gyűjtemények nem használhatók GitHub.

Az SortedList objektumok belsőleg két tömböt tartanak fenn a lista elemeinek tárolásához, azaz a kulcsok egyik tömbjét, a társított értékek másik tömbjét. Minden elem egy kulcs-érték pár, amely objektumként DictionaryEntry érhető el. A kulcs nem lehet null, de egy érték lehet.

Egy objektum kapacitása SortedList a visszatartható elemek SortedList száma. Az elemek hozzáadásakor SortedLista kapacitás a szükséges módon automatikusan növekszik az újraelosztással. A kapacitás csökkenthető hívással TrimToSize vagy a Capacity tulajdonság explicit beállításával.

csak .NET-keretrendszer: Nagyon nagy objektumok esetén a maximális kapacitást 2 milliárd elemre növelheti egy 64 bites rendszeren, ha a < konfigurációs elem attribútumát -ra állítja a futásidejű környezetben.

Az objektumok elemeit SortedList a kulcsok rendezik a létrehozáskor IComparer megadott implementáció SortedList vagy a kulcsok által biztosított implementáció szerintIComparable. Egyik esetben sem engedélyezi a SortedList duplikált kulcsokat.

Az indexsorozat a rendezési sorrenden alapul. Amikor hozzáad egy elemet, a rendszer a megfelelő rendezési sorrendbe szúrja be SortedList , és az indexelés ennek megfelelően módosul. Egy elem eltávolításakor az indexelés is ennek megfelelően módosul. Ezért előfordulhat, hogy egy adott kulcs/érték pár indexe megváltozik az elemek hozzáadásakor vagy az objektumból való SortedList eltávolításakor.

Az objektumokon végzett SortedList műveletek általában lassabbak, mint az Hashtable objektumokon végzett műveletek a rendezés miatt. Ez azonban SortedList nagyobb rugalmasságot nyújt azáltal, hogy lehetővé teszi az értékek elérését a társított kulcsokon vagy az indexeken keresztül.

A gyűjtemény elemei egész számindex használatával érhetők el. A gyűjtemény indexei nulla alapúak.

A C# nyelv foreach utasítása (for each Visual Basic) a gyűjtemény elemeinek típusát adja vissza. Mivel az SortedList objektum minden eleme kulcs/érték pár, az elem típusa nem a kulcs vagy az érték típusa. Az elem típusa inkább az DictionaryEntry. Például:

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

Az foreach utasítás egy burkoló az enumerátor körül, amely csak olvasást tesz lehetővé, nem pedig írást a gyűjteményből.

Konstruktorok

Name Description
SortedList()

Inicializálja az SortedList osztály új példányát, amely üres, az alapértelmezett kezdeti kapacitással rendelkezik, és az IComparable objektumhoz SortedList hozzáadott egyes kulcsok által implementált felületnek megfelelően van rendezve.

SortedList(IComparer, Int32)

Inicializálja az SortedList üres osztály új példányát, rendelkezik a megadott kezdeti kapacitással, és a megadott IComparer felület szerint rendezi.

SortedList(IComparer)

Inicializálja az SortedList üres osztály új példányát, az alapértelmezett kezdeti kapacitással rendelkezik, és a megadott IComparer felület szerint rendezi.

SortedList(IDictionary, IComparer)

Inicializálja az SortedList osztály új példányát, amely a megadott szótárból másolt elemeket tartalmaz, a kezdeti kapacitása megegyezik a másolt elemek számával, és a rendszer a megadott IComparer felület szerint rendezi.

SortedList(IDictionary)

Inicializálja az SortedList osztály új példányát, amely a megadott szótárból másolt elemeket tartalmaz, a kezdeti kapacitása megegyezik a másolt elemek számával, és az egyes kulcsok által implementált felületnek megfelelően IComparable van rendezve.

SortedList(Int32)

Inicializálja az SortedList osztály új, üres példányát, rendelkezik a megadott kezdeti kapacitással, és az IComparable objektumhoz SortedList hozzáadott kulcsok által implementált felületnek megfelelően van rendezve.

Tulajdonságok

Name Description
Capacity

Lekéri vagy beállítja egy SortedList objektum kapacitását.

Count

Lekéri az objektumban SortedList található elemek számát.

IsFixedSize

Beolvas egy értéket, amely jelzi, hogy egy SortedList objektum rögzített méretű-e.

IsReadOnly

Beolvas egy értéket, amely jelzi, hogy egy SortedList objektum írásvédett-e.

IsSynchronized

Beolvas egy értéket, amely jelzi, hogy az SortedList objektumhoz való hozzáférés szinkronizálva van-e (a szál biztonságos).

Item[Object]

Lekéri vagy beállítja az objektum adott kulcsához SortedList társított értéket.

Keys

Lekéri a kulcsokat egy SortedList objektumban.

SyncRoot

Lekéri az objektumhoz való hozzáférés szinkronizálására használható objektumot SortedList .

Values

Lekéri egy objektum értékeit SortedList .

Metódusok

Name Description
Add(Object, Object)

A megadott kulccsal és értékkel rendelkező elemet ad hozzá egy SortedList objektumhoz.

Clear()

Eltávolítja az összes elemet egy SortedList objektumból.

Clone()

Egy objektum sekély másolatát SortedList hozza létre.

Contains(Object)

Meghatározza, hogy egy SortedList objektum tartalmaz-e egy adott kulcsot.

ContainsKey(Object)

Meghatározza, hogy egy SortedList objektum tartalmaz-e egy adott kulcsot.

ContainsValue(Object)

Meghatározza, hogy egy SortedList objektum tartalmaz-e egy adott értéket.

CopyTo(Array, Int32)

Elemeket másol SortedList egy egydimenziós Array objektumba a tömb megadott indexétől kezdve.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetByIndex(Int32)

Lekéri az értéket egy SortedList objektum megadott indexén.

GetEnumerator()

IDictionaryEnumerator Egy objektumon keresztül SortedList iterálható objektumot ad vissza.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetKey(Int32)

Lekéri a kulcsot egy SortedList objektum megadott indexében.

GetKeyList()

Lekéri a kulcsokat egy SortedList objektumban.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
GetValueList()

Lekéri egy objektum értékeit SortedList .

IndexOfKey(Object)

A megadott kulcs nulla alapú indexét adja vissza egy SortedList objektumban.

IndexOfValue(Object)

A megadott érték első előfordulásának nullaalapú indexét adja vissza egy SortedList objektumban.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
Remove(Object)

Eltávolítja a megadott kulccsal rendelkező elemet egy SortedList objektumból.

RemoveAt(Int32)

Eltávolítja az elemet egy SortedList objektum megadott indexéből.

SetByIndex(Int32, Object)

Egy objektum adott indexében lévő SortedList értéket cseréli le.

Synchronized(SortedList)

Egy objektum szinkronizált (szálbiztos) burkolóját SortedList adja vissza.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
TrimToSize()

A kapacitást egy objektum elemeinek tényleges számára állítja SortedList be.

Explicit interfész-implementációk

Name Description
IEnumerable.GetEnumerator()

Egy olyan értéket IEnumerator ad vissza, amely a SortedList.

Bővítő metódusok

Name Description
AsParallel(IEnumerable)

Lehetővé teszi a lekérdezés párhuzamosítását.

AsQueryable(IEnumerable)

Átalakítja az egyiket IEnumerableIQueryable.

Cast<TResult>(IEnumerable)

Egy elem elemeit IEnumerable a megadott típusra veti.

OfType<TResult>(IEnumerable)

Egy adott típus alapján szűri IEnumerable egy adott elem elemeit.

A következőre érvényes:

Szálbiztonság

A nyilvános statikus (Shared Visual Basic) ilyen típusú tagjai szálbiztosak. A példánytagok nem garantáltan szálbiztosak.

Az SortedList objektumok egyszerre több olvasót is támogathatnak, feltéve, hogy a gyűjtemény nem módosul. A menetbiztonság garantálása SortedListérdekében minden műveletet a metódus által Synchronized(SortedList) visszaadott burkolón keresztül kell elvégezni.

A gyűjteményen keresztüli számbavétel alapvetően nem szálbiztos eljárás. A gyűjtemény szinkronizálása esetén is más szálak módosíthatják a gyűjteményt, ami miatt az enumerátor kivételt okoz. Az enumerálás során a szálbiztonság garantálása érdekében zárolhatja a gyűjteményt a teljes enumerálás során, vagy elkaphatja a más szálak által végrehajtott módosításokból eredő kivételeket.

Lásd még