SortedList Klass

Definition

Representerar en samling nyckel/värde-par som sorteras efter nycklarna och är tillgängliga efter nyckel och index.

public ref class SortedList : System::Collections::IDictionary
public ref class SortedList : ICloneable, System::Collections::IDictionary
public class SortedList : 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
public class SortedList : ICloneable, System.Collections.IDictionary
type SortedList = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
[<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
type SortedList = class
    interface ICollection
    interface IEnumerable
    interface IDictionary
    interface ICloneable
Public Class SortedList
Implements IDictionary
Public Class SortedList
Implements ICloneable, IDictionary
Arv
SortedList
Attribut
Implementeringar

Exempel

I följande kodexempel visas hur du skapar och initierar ett SortedList objekt och hur du skriver ut dess nycklar och värden.

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

Kommentarer

Ett SortedList element kan nås av dess nyckel, till exempel ett element i en IDictionary implementering eller av dess index, som ett element i en implementering IList .

Important

Vi rekommenderar inte att du använder SortedList klassen för ny utveckling. I stället rekommenderar vi att du använder den allmänna System.Collections.Generic.SortedList<TKey,TValue> klassen. Mer information finns i Non-generic samlingar bör inte användas på GitHub.

Ett SortedList objekt underhåller internt två matriser för att lagra elementen i listan, dvs. en matris för nycklarna och en annan matris för de associerade värdena. Varje element är ett nyckel/värde-par som kan nås som ett DictionaryEntry objekt. En nyckel kan inte vara null, men ett värde kan vara.

Kapaciteten för ett SortedList objekt är antalet element som SortedList kan hållas. När element läggs till i en SortedListökar kapaciteten automatiskt efter behov genom omallokering. Kapaciteten kan minskas genom att anropa TrimToSize eller genom att uttryckligen ange egenskapen Capacity .

.NET Framework only: För mycket stora SortedList objekt kan du öka den maximala kapaciteten till 2 miljarder element i ett 64-bitarssystem genom att ange attributet enabled för konfigurationselementet <gcAllowVeryLargeObjects> till true i körningsmiljön.

Elementen i ett SortedList objekt sorteras efter nycklarna antingen enligt en specifik IComparer implementering som anges när SortedList det skapas eller enligt implementeringen IComparable som tillhandahålls av själva nycklarna. I båda fallen tillåter inte en SortedList dubblettnycklar.

Indexsekvensen baseras på sorteringssekvensen. När ett element läggs till infogas det i SortedList rätt sorteringsordning och indexeringen justeras därefter. När ett element tas bort justeras även indexeringen i enlighet med detta. Indexet för ett specifikt nyckel/värde-par kan därför ändras när element läggs till eller tas bort från objektet SortedList .

Åtgärder på ett SortedList objekt tenderar att vara långsammare än åtgärder på ett Hashtable objekt på grund av sortering. Ger dock SortedList större flexibilitet genom att ge åtkomst till värdena antingen via de associerade nycklarna eller via indexen.

Element i den här samlingen kan nås med hjälp av ett heltalsindex. Index i den här samlingen är nollbaserade.

Instruktionen foreach för C#-språket (for each i Visual Basic) returnerar ett objekt av typen av element i samlingen. Eftersom varje element i SortedList objektet är ett nyckel/värde-par är elementtypen inte typen av nyckel eller värdetypen. Elementtypen är DictionaryEntryi stället . Ett exempel:

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

-instruktionen foreach är en omslutning runt uppräknaren, som endast tillåter läsning från, inte skriva till, samlingen.

Konstruktorer

Name Description
SortedList()

Initierar en ny instans av SortedList klassen som är tom, har standardinitierad kapacitet och sorteras enligt gränssnittet IComparable som implementeras av varje nyckel som läggs till i SortedList objektet.

SortedList(IComparer, Int32)

Initierar en ny instans av SortedList klassen som är tom, har den angivna initiala kapaciteten och sorteras enligt det angivna IComparer gränssnittet.

SortedList(IComparer)

Initierar en ny instans av SortedList klassen som är tom, har standardinitierad kapacitet och sorteras enligt det angivna IComparer gränssnittet.

SortedList(IDictionary, IComparer)

Initierar en ny instans av SortedList klassen som innehåller element som kopierats från den angivna ordlistan, har samma initiala kapacitet som antalet kopierade element och sorteras enligt det angivna IComparer gränssnittet.

SortedList(IDictionary)

Initierar en ny instans av SortedList klassen som innehåller element som kopierats från den angivna ordlistan, har samma initiala kapacitet som antalet kopierade element och sorteras enligt gränssnittet IComparable som implementeras av varje nyckel.

SortedList(Int32)

Initierar en ny instans av SortedList klassen som är tom, har den angivna initiala kapaciteten och sorteras enligt gränssnittet IComparable som implementeras av varje nyckel som läggs till i SortedList objektet.

Egenskaper

Name Description
Capacity

Hämtar eller anger kapaciteten för ett SortedList objekt.

Count

Hämtar antalet element som finns i ett SortedList objekt.

IsFixedSize

Hämtar ett värde som anger om ett SortedList objekt har en fast storlek.

IsReadOnly

Hämtar ett värde som anger om ett SortedList objekt är skrivskyddat.

IsSynchronized

Hämtar ett värde som anger om åtkomsten till ett SortedList objekt synkroniseras (trådsäker).

Item[Object]

Hämtar eller anger värdet som är associerat med en specifik nyckel i ett SortedList objekt.

Keys

Hämtar nycklarna i ett SortedList objekt.

SyncRoot

Hämtar ett objekt som kan användas för att synkronisera åtkomst till ett SortedList objekt.

Values

Hämtar värdena i ett SortedList objekt.

Metoder

Name Description
Add(Object, Object)

Lägger till ett element med den angivna nyckeln och värdet i ett SortedList objekt.

Clear()

Tar bort alla element från ett SortedList objekt.

Clone()

Skapar en ytlig kopia av ett SortedList objekt.

Contains(Object)

Avgör om ett SortedList objekt innehåller en specifik nyckel.

ContainsKey(Object)

Avgör om ett SortedList objekt innehåller en specifik nyckel.

ContainsValue(Object)

Avgör om ett SortedList objekt innehåller ett specifikt värde.

CopyTo(Array, Int32)

Kopierar SortedList element till ett endimensionellt Array objekt med början vid det angivna indexet i matrisen.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetByIndex(Int32)

Hämtar värdet vid det angivna indexet för ett SortedList objekt.

GetEnumerator()

Returnerar ett IDictionaryEnumerator objekt som itererar genom ett SortedList objekt.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetKey(Int32)

Hämtar nyckeln vid det angivna indexet för ett SortedList objekt.

GetKeyList()

Hämtar nycklarna i ett SortedList objekt.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
GetValueList()

Hämtar värdena i ett SortedList objekt.

IndexOfKey(Object)

Returnerar det nollbaserade indexet för den angivna nyckeln i ett SortedList objekt.

IndexOfValue(Object)

Returnerar det nollbaserade indexet för den första förekomsten av det angivna värdet i ett SortedList objekt.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Remove(Object)

Tar bort elementet med den angivna nyckeln från ett SortedList objekt.

RemoveAt(Int32)

Tar bort elementet vid det angivna indexet för ett SortedList objekt.

SetByIndex(Int32, Object)

Ersätter värdet vid ett specifikt index i ett SortedList objekt.

Synchronized(SortedList)

Returnerar en synkroniserad (trådsäker) omslutning för ett SortedList objekt.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
TrimToSize()

Anger kapaciteten till det faktiska antalet element i ett SortedList objekt.

Explicita gränssnittsimplementeringar

Name Description
IEnumerable.GetEnumerator()

Returnerar en IEnumerator som itererar via SortedList.

Tilläggsmetoder

Name Description
AsParallel(IEnumerable)

Möjliggör parallellisering av en fråga.

AsQueryable(IEnumerable)

Konverterar en IEnumerable till en IQueryable.

Cast<TResult>(IEnumerable)

Omvandlar elementen i en IEnumerable till den angivna typen.

OfType<TResult>(IEnumerable)

Filtrerar elementen i en IEnumerable baserat på en angiven typ.

Gäller för

Trådsäkerhet

Offentliga statiska (Shared i Visual Basic) medlemmar av den här typen är trådsäkra. Vilka som helst instansmedlemmar garanteras inte att vara trådsäkra.

Ett SortedList objekt kan ha stöd för flera läsare samtidigt, så länge samlingen inte ändras. För att garantera trådsäkerheten för SortedListmåste alla åtgärder utföras via omslutningen som returneras av Synchronized(SortedList) metoden.

Att räkna upp genom en samling är i sig inte en trådsäker procedur. Även när en samling synkroniseras kan andra trådar fortfarande ändra samlingen, vilket gör att uppräknaren genererar ett undantag. För att garantera trådsäkerheten under uppräkningen kan du antingen låsa samlingen under hela uppräkningen eller fånga undantagen från ändringar som gjorts av andra trådar.

Se även