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

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

Susan Sarandon
發布: 2025-01-01 06:06:11
原創
690 人瀏覽過

How to Implement a Generic OrderedDictionary in .NET?

實作OrderedDictionary

實作是對通用MicrosoftOrderedDictionary 並不是一項複雜的任務,但它可能非常耗時,並且被認為是對通用Microsoft的疏忽。部分。有多種方法可以實現它,但一種方法涉及使用 KeyedCollection 進行內部存儲,並使用 Key 和 List 混合進行排序,其方式與 List 類似。

類別結構

通用 OrderedDictionary (IOrderedDictionary) 的介麵包括通用和非泛型 (System.Collections.Specialized.IOredDiction。實作類別 (OrderedDictionary) 繼承自 KeyedCollectionBase 類,具有類型為 KeyedCollection2> 的私有欄位。在內部儲存鍵值對。

重寫方法

OrderedDictionary 類別重寫 IDictionary 和 IDictionary 中的各種方法。和IOrderedDictionary 介面:

  • 與鍵值管理相關的方法(Add、Clear、ContainsKey、Remove)
  • 透過鍵或索引存取值的索引器屬性(this[TKey key ] , this[int index])
  • 操作元素順序的方法(Insert, IndexOf, RemoveAt)
  • 透過索引擷取或設定鍵值對的方法(GetValue, SetValue, GetItem, SetItem)
  • 用於迭代集合的枚舉器和屬性實作(GetEnumerator, Count , Keys,值)

排序功能

OrderedDictionary類別包含使用內建或自訂比較器以不同方式對鍵或值進行排序的方法:

  • SortKeys():按自然對鍵進行排序order.
  • SortKeys( IComparer 比較器):對鍵進行排序使用指定的比較器。
  • SortKeys(Comparison Comparison):使用指定的比較委託對鍵進行排序。
  • SortValues():依數值的自然順序對數值進行排序。
  • SortValues(IComparer; Comparer):使用指定的比較器對值進行排序。
  • SortValues(Comparison比較):使用指定的比較委託對值進行排序。

其他功能

OrderedDictionary 類別也支援下列功能如:

  • 透過 _keyed KeyCollection 屬性存取。
  • 繼承自 KeyedCollection2 類別的排序演算法(SortByKeys、Sort、SortByKeys)。
  • Helper 方法建立DictionaryEnumerators以供使用IOrderedDictionary.

用法範例

用法範例

提供的程式碼範例示範如何建立、操作和排序 OrderedDictionary 實例:

  • 使用鍵值對建立 OrderedDictionary。
  • 使用索引器檢索和設定值和 GetValue/SetValue 方法。
  • 使用 SortKeys 和 SortValues 方法對字典進行排序通過鍵或值。
  • 透過集合枚舉來存取每個鍵值對。

結論

而.NET 沒有本機提供了OrderedDictionary 的通用實現,所提供的程式碼範例提供了一個可以根據特定需求進行客製化的強大替代方案。此實作填補了 .NET 集合庫中的空白,透過基於鍵和基於索引的存取實現高效且有組織的資料管理。

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

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