SortedDictionary, SortedList und SortedSet sind Sammlungsklassen, die Schlüssel/Wert-Paare speichern und nach Schlüssel sortiert werden können. Ein SortedSet ist eine Sammlung, die in einer sortierten Reihenfolge verwaltet wird. SortedList ist eine Sammlung, mit der Sie Schlüssel und Werte mithilfe von Indizes abrufen können. SortedDictionary hat keinen Index, fügt aber unsortierte Daten schneller ein und löscht sie schneller als SortedList.
Dieser Artikel beschreibt SortedDictionary, SortedList, SortedSet, ihre Unterschiede und wie man mit ihnen in C# arbeitet. Visual Studio 2019 muss auf Ihrem System installiert sein, um die in diesem Artikel bereitgestellten Codebeispiele verwenden zu können. Wenn Sie noch keine Kopie haben, laden Sie Visual Studio 2019 hier herunter.
Erstellen Sie ein .NET Core-Konsolenanwendungsprojekt in Visual Studio
Lassen Sie uns zunächst ein .NET Core-Konsolenanwendungsprojekt in Visual Studio erstellen. Angenommen, Visual Studio 2019 ist auf Ihrem System installiert, führen Sie die unten beschriebenen Schritte aus, um ein neues .NET Core-Konsolenanwendungsprojekt in Visual Studio zu erstellen.
- Starten Sie die Visual Studio-IDE. Klicken Sie auf Neues Projekt erstellen. Wählen Sie im Fenster „Neues Projekt erstellen“ Konsolen-App (.NET Core) aus der Liste der angezeigten Vorlagen aus. [次へ]Klicken. Unten gezeigt[新しいプロジェクトの構成]Geben Sie im Fenster den Namen und den Speicherort des neuen Projekts an. [作成]Klicken.
In den folgenden Abschnitten dieses Artikels wird dieses Projekt verwendet, um mit SortedDictionary, SortedList und SortedSet zu arbeiten.
Verwenden Sie die SortedSet-Klasse in C #
SortedSet, das dem System.Collections.Generic-Namespace zugeordnet ist
SortedSets enthalten nur eindeutige Elemente und werden verwendet, um Daten in Sammlungen zu speichern, die sortiert sein müssen. Standardmäßig sind die Elemente des SortedSet in aufsteigender Reihenfolge. SortedSet
- IReadOnlyCollection IDeserializationCallBack IEnumerable ISet ISerializable
SortedSet
SortedSet<int> sortedIntegers = new SortedSet<int>();
sortedIntegers.Add(1);
sortedIntegers.Add(5);
sortedIntegers.Add(3);
sortedIntegers.Add(2);
sortedIntegers.Add(4);
Der folgende Codeausschnitt zeigt, wie die Elemente eines SortedSet abgerufen werden.
foreach (var x in sortedIntegers)
{
Console.WriteLine(x);
}
Als Referenz finden Sie hier die vollständige Codeliste:
static void Main(string[] args) {
SortedSet < int > sortedIntegers = new SortedSet < int > ();
sortedIntegers.Add(1);
sortedIntegers.Add(5);
sortedIntegers.Add(3);
sortedIntegers.Add(2);
sortedIntegers.Add(4);foreach(var x in sortedIntegers) {
Console.WriteLine(x);
}
Console.Read();
}
Wenn Sie das obige Programm ausführen, werden die Ganzzahlen im Konsolenfenster in aufsteigender Reihenfolge angezeigt, wie in Abbildung 1 dargestellt.
Abbildung 1.
Der folgende Codeausschnitt zeigt, wie eine Zeichenfolge in einem SortedSet von Zeichenfolgen gespeichert und in einem Konsolenfenster angezeigt wird.
SortedSet<string> sortedStrings = new SortedSet<string>();
sortedStrings.Add("India");
sortedStrings.Add("USA");
sortedStrings.Add("England");
sortedStrings.Add("Australia");
sortedStrings.Add("New Zealand");
foreach (string str in sortedStrings)
{
Console.WriteLine(str);
}
Wenn Sie das obige Programm ausführen, werden die Ländernamen im Konsolenfenster in aufsteigender Reihenfolge angezeigt, wie in Abbildung 2 dargestellt.

Figur 2.
Verwenden Sie die SortedList-Klasse in C#
SortedList stellt eine Sammlung von Objekten dar, die als nach Schlüssel sortierte Schlüssel/Wert-Paare gespeichert sind. Sie können sowohl generische als auch nicht generische Versionen der SortedList finden. Generische Versionen werden im System.Collections.Generic-Namespace definiert, während nicht generische Versionen im System.Collections-Namespace definiert werden.
Sie können auf die Objekte in der SortedList nach Schlüssel oder Index zugreifen. Der SortedList-Schlüssel muss eindeutig sein und darf nicht null sein.
SortedDictionary wird mit einem rot-schwarzen binären Suchbaum implementiert, während SortedList mit zwei internen Arrays implementiert wird. Eine für Schlüssel und eine für Werte. SortierteListe
Der folgende Codeausschnitt zeigt, wie Daten in einer SortedList gespeichert und die Daten in einem Konsolenfenster abgerufen und angezeigt werden.
SortedList<int,string> authorList = new SortedList<int, string>();
authorList.Add(1, "Joydip");
authorList.Add(3, "Steve");
authorList.Add(2, "Michael");
foreach (KeyValuePair<int, string> pair in authorList)
{
Console.WriteLine("Key: {0}tValue: {1}", pair.Key, pair.Value);
}
Wenn Sie das obige Programm ausführen, sehen Sie die Ausgabe in einem Konsolenfenster, wie in Abbildung 3 dargestellt.

Figur 3.
Verwenden Sie die SortedDictionary-Klasse in C #
Sortiertes Wörterbuch
Der folgende Codeausschnitt zeigt, wie Elemente im SortedDictionary gespeichert, abgerufen und im Konsolenfenster angezeigt werden.
SortedDictionary<int, int> keyValuePairs = new SortedDictionary<int, int>();
keyValuePairs.Add(1, 100);
keyValuePairs.Add(5, 500);
keyValuePairs.Add(3, 300);
keyValuePairs.Add(4, 400);
keyValuePairs.Add(2, 200);
foreach (KeyValuePair<int, int> pair in keyValuePairs)
{
Console.WriteLine("Key: {0}tValue: {1}", pair.Key, pair.Value);
}
Wenn Sie das obige Programm ausführen, sehen Sie eine Ausgabe ähnlich der in Abbildung 4 gezeigten.

Figur 4.
Einfüge- und Löschvorgänge im SortedDictionary nehmen O (log n), unabhängig davon, wo in der Sammlung Sie Elemente hinzufügen oder entfernen. Das Hinzufügen oder Entfernen von Elementen am Ende einer SortedList erfordert ebenfalls ein O (log n), jedoch nur am Ende der Liste.
Wenn Sie einen Index verwenden müssen, um auf ein Element zuzugreifen oder die sortierten Daten in einer Sammlung auf einmal aufzufüllen, können Sie SortedList verwenden. Wenn es wichtig ist, den Arbeitsspeicheraufwand zu minimieren, und Sie mehr Suchvorgänge und weniger Einfüge- und Löschvorgänge benötigen, können Sie SortedList auswählen. Wenn Sie unsortierte Daten hinzufügen möchten, ist das Sorted Dictionary eine gute Wahl. Es eignet sich auch, um unsortierte Artikel willkürlich der Sammlung hinzuzufügen oder willkürlich aus der Sammlung zu entfernen. Das Gedächtnis ist keine Einschränkung.
So machen Sie mehr mit C#:
Copyright © 2021 IDG Communications, Inc.
Fluance Ai41 Speaker Review: Focus Size Power Plant Theranos-Gerät lief ein „Nullprotokoll“, um die eigentliche Demo für Investoren zu überspringen. Pixel 6, Pixel 6 Pro India starten ungeplant, Google bestätigte How to Water Your Plants While Away – CNET Mobile Sheriff zielte darauf ab, dies zu verhindern die Verabschiedung von Waffengesetzen – WKRG News 5 Latest Technology News
- Fluance Ai41 Speaker Review: Focus Size Power Plant Theranos-Gerät lief ein „Nullprotokoll“, um die eigentliche Demo für Investoren zu überspringen. Pixel 6, Pixel 6 Pro India starten ungeplant, Google bestätigte How to Water Your Plants While Away – CNET Mobile Sheriff zielte darauf ab, dies zu verhindern die Verabschiedung von Waffengesetzen – WKRG News 5