Neu in .NET 9.0 [16]: Neue Mengenklasse OrderedDictionary<T,T>

Das altbekannte OrderedDictionary gibt es nun auch in einer generischen Variante.

vorlesen Druckansicht 5 Kommentare lesen

(Bild: Pincasso/Shutterstock.com)

Lesezeit: 1 Min.
Von
  • Dr. Holger Schwichtenberg

Seit .NET Framework 2.0 und .NET Core 1.0 gibt es die Klasse System.Collections.Specialized.OrderedDictionary zum Abspeichern von Name-Wert-Paaren, sortiert nach Reihenfolge des EinfĂĽgens und mit schnellem Auffinden eines Elements anhand des SchlĂĽssels oder Wertes. Die Add()-Methode erwartet dabei zwei beliebige .NET-Objekte.

Der Dotnet-Doktor – Holger Schwichtenberg
Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.

In .NET 9.0 fĂĽhrt Microsoft endlich auch eine generische Variante OrderedDictionary<T,T> im Namensraum System.Collections.Generic ein, mit der man den Typ fĂĽr SchlĂĽssel und Wert festzurren kann.

Videos by heise

Folgender Code zeigt den Einsatz von OrderedDictionary<T,T>:

public void GenericOrderedDictionary()
 {
  CUI.Demo(nameof(GenericOrderedDictionary));

  OrderedDictionary<string, int> d = new()
  {
   ["www.IT-Visions.de"] = 1996,
   ["www.dotnet7.de"] = 2022,
   ["www.dotnet8.de"] = 2023,
   ["www.dotnet-lexikon.de"] = 2000,
  };

  d.Add("www.dotnet9.de", 2024);
  d.RemoveAt(1);
  d.Insert(0, "www.dotnetframework.de", 2000);

  foreach (KeyValuePair<string, int> entry in d)
  {
   Console.WriteLine(entry);
  }
 }

Das Listing ergibt folgende Ausgabe:

[www.dotnetframework.de, 2000]
[www.IT-Visions.de, 1996]
[www.dotnet8.de, 2023]
[www.dotnet-lexikon.de, 2000]
[www.dotnet9.de, 2024]

(rme)