繁体   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