Melaksanakan Generic OrderedDictionary
Walaupun pelaksanaan generik OrderedDictionary mungkin tidak tersedia dalam .NET 3.5, mencipta satu tidaklah terlalu rumit . Kami boleh memanfaatkan KeyedCollection untuk penyimpanan dan melaksanakan pelbagai kaedah untuk mengisih item seperti List
Antaramuka
public interface IOrderedDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IOrderedDictionary { // ... }
Pelaksanaan
public class OrderedDictionary<TKey, TValue> : IOrderedDictionary<TKey, TValue> { private KeyedCollection2<TKey, KeyValuePair<TKey, TValue>> _keyedCollection; // ... }
Pembantu Kelas
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 { // ... }
Ujian
[TestClass] public class OrderedDictionaryTests { // ... }
Ujian ini menunjukkan pelbagai keupayaan OrderedDictionary yang dilaksanakan.
Kesimpulan
Walaupun .NET mungkin tidak menyediakan generik Pelaksanaan OrderedDictionary, mencipta sendiri dengan sumber ini ialah penyelesaian yang berdaya maju untuk mengekalkan kedua-dua kelajuan carian berasaskan kunci dan susunan sisipan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Generic OrderedDictionary dalam .NET 3.5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!