SortedList Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
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.