[英]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等同于map或hashtable ,你需要知道SortedDictionary有点用词不当。 它使用二进制树实现(我认为是Red-Black),其算法复杂度不同于Dictionary的哈希表实现。 请参阅各自文档页面的“备注”部分。 如果性能至关重要,您可能需要考虑订购是否真正重要。
如果您希望字典具有特定顺序,则应查看SortedDictionary。 看到这篇文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.