首頁 > 後端開發 > C++ > 如何在 .NET 3.5 中實作通用 OrderedDictionary?

如何在 .NET 3.5 中實作通用 OrderedDictionary?

Mary-Kate Olsen
發布: 2024-12-31 11:17:10
原創
231 人瀏覽過

How to Implement a Generic OrderedDictionary in .NET 3.5?

實作通用 OrderedDictionary

雖然 OrderedDictionary 的通用實作在 .NET 3.5 中可能不可用,但建立一個並不太複雜。我們可以利用 KeyedCollection 進行儲存並實作各種方法來對項目進行排序,例如 List 等。確實如此,有效地創建了 IList 和 IDictionary 的混合體。

介面

public interface IOrderedDictionary<TKey, TValue> : IDictionary<TKey, TValue>, IOrderedDictionary
{
    // ...
}
登入後複製

實作

public class OrderedDictionary<TKey, TValue> : IOrderedDictionary<TKey, TValue>
{
    private KeyedCollection2<TKey, KeyValuePair<TKey, TValue>> _keyedCollection;
    
    // ...
}
登入後複製

幫手類

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
{
    // ...
}
登入後複製

測試

[TestClass]
public class OrderedDictionaryTests
{
    // ...
}
登入後複製

這些測試示範了已實現的OrderedDictionary的各種功能。

結論

雖然.NET 可能不會提供通用的OrderedDictionary 實現,使用這些資源創建您自己的實現是維護基於鍵的查找速度和插入順序的可行解決方案。

以上是如何在 .NET 3.5 中實作通用 OrderedDictionary?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板