Heim > Backend-Entwicklung > C++ > Wie implementiert man ein generisches OrderedDictionary in .NET 3.5?

Wie implementiert man ein generisches OrderedDictionary in .NET 3.5?

Mary-Kate Olsen
Freigeben: 2024-12-31 11:17:10
Original
241 Leute haben es durchsucht

How to Implement a Generic OrderedDictionary in .NET 3.5?

Implementieren eines generischen OrderedDictionary

Während eine generische Implementierung von OrderedDictionary in .NET 3.5 möglicherweise nicht verfügbar ist, ist das Erstellen einer solchen nicht allzu komplex . Wir können eine KeyedCollection zur Speicherung nutzen und verschiedene Methoden zum Sortieren von Elementen wie List tut, wodurch effektiv eine Mischung aus IList und IDictionary entsteht.

Schnittstelle

public interface IOrderedDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IOrderedDictionary
{
    // ...
}
Nach dem Login kopieren

Implementierung

public class OrderedDictionary<TKey, TValue> : IOrderedDictionary<TKey, TValue>
{
    private KeyedCollection2<TKey, KeyValuePair<TKey, TValue>> _keyedCollection;
    
    // ...
}
Nach dem Login kopieren

Helfer Klassen

public class KeyedCollection2<TKey, TItem> : KeyedCollection<TKey, TItem>
{
    private Func<TItem, TKey> _getKeyForItemDelegate;

    // ...
}

public class Comparer2<T> : Comparer<T>
{
    private readonly Comparison<T> _compareFunction;

    // ...
}

public class DictionaryEnumerator<TKey, TValue> : IDictionaryEnumerator, IDisposable
{
    // ...
}
Nach dem Login kopieren

Tests

[TestClass]
public class OrderedDictionaryTests
{
    // ...
}
Nach dem Login kopieren

Diese Tests demonstrieren die verschiedenen Fähigkeiten des implementierten OrderedDictionary.

Fazit

Während .NET möglicherweise kein generisches OrderedDictionary bereitstellt Implementierung ist die Erstellung einer eigenen Lösung mit diesen Ressourcen eine praktikable Lösung, um sowohl die schlüsselbasierte Suchgeschwindigkeit als auch die Einfügereihenfolge beizubehalten.

Das obige ist der detaillierte Inhalt vonWie implementiert man ein generisches OrderedDictionary in .NET 3.5?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage