簡體   English   中英

C#反轉詞典中的項目

[英]C# Reverse items in Dictionary

我正試圖在C#中翻譯字典中的項目。 我努力了:

Dictionary<double, int> dict = new Dictionary<double, int>();
...add itmes to it....
var v = dict.Reverse()

但是,dict.Reverse()給了我一種IEnumberable>。 我只是想知道如何才能使它成為一種字典?

提前致謝。

停止!

字典和哈希表和集合沒有排序。

排序或更改訂單絕對沒有意義。

字典不是有序數據結構。 要使Reverse具有任何實際意義,您需要使用SortedDictionary。 您可以通過創建一個帶有Comparer的新副本來獲得SortedDictionary的反向副本,該Comparer執行與原始相反的排序(請參閱構造函數 )。

var reversed = new SortedDictionary( original, new ReverseKeyComparer() );

請注意, ReverseKeyComparer是該示例的一個ReverseKeyComparer類。

另外 - 如果你將Dictionary等同於maphashtable ,你需要知道SortedDictionary有點用詞不當。 它使用二進制樹實現(我認為是Red-Black),其算法復雜度不同於Dictionary的哈希表實現。 請參閱各自文檔頁面的“備注”部分。 如果性能至關重要,您可能需要考慮訂購是否真正重要。

如果您希望字典具有特定順序,則應查看SortedDictionary。 看到這篇文章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM